JSON属性赋值JSON字符串的方法原创
金蝶云社区-抚琴弹唱
抚琴弹唱
4人赞赏了该文章 2197次浏览 未经作者许可,禁止转载编辑于2021年12月13日 17:48:36

问题描述: WEBAPI中,文本字段FJSON的值为json字符串,赋值报错:接口参数data格式错误,无法解析为JSON。

解决方法: 

1. 假设json为:

{"Model":["FBillNo":"01","EntryData":[{"FSeq":"01","FAmount":0.0,"FActualAmount":0.0,"FVirtualAmount":0.0,"FLdAmouont":0.0}]]}

2. json.ToString()可得到str1:

\"{\"Model\":[\"FBillNo\":\"01\",\"EntryData\":[{\"FSeq\":\"01\",\"FAmount\":0.0,\"FActualAmount\":0.0,\"FVirtualAmount\":0.0,\"FLdAmouont\":0.0}]]}\"

3. str1直接赋值给FJSON会转换成JSON,所以需要再次转义,把\"替换成\\"

"\\"{\\"Model\\":[\\"FBillNo\\":\\"01\\",\\"EntryData\\":[{\\"FSeq\\":\\"01\\",\\"FAmount\\":0.0,\\"FActualAmount\\":0.0,\\"FVirtualAmount\\":0.0,\\"FLdAmouont\\":0.0}]]}\\""

最终JSON如下:

{
"Parameters": "",
"Numbers": [],
"Ids": "",
"Model": {
            "FJson": "\\"{\\"Model\\":[\\"FBillNo\\":\\"01\\",\\"EntryData\\":[{\\"FSeq\\":\\"01\\",\\"FAmount\\":0.0,\\"FActualAmount\\":0.0,\\"FVirtualAmount\\":0.0,\\"FLdAmouont\\":0.0}]]}\\""
    }
}


赞 4