遇到一个奇葩的json 不会解析

{"data":"{"amount":"20"}"} 这种格式怎么取出来amount的值,这个不是json格式吧?

是json
data.account

.data.amount

是json 这是data类,里面有个属性 amount ;用data.amount 可以取出

json套json罢了 先解析第一层 再解析第二层

$.parseJSON(json.data).amount

data属性值是json字符串,对其二次解析,获取属性amount

json在线解析器格式化一下,能格式化说明就是json格式。

这个我刚前几天写过。。。
使用阿里的fastJson解析,譬如先新建个类Amount,里面有amount,然后新建个Response类,里面有data,再有个 Amount amount;提供get和set方法。
在你需要解析的地方,使用com.alibaba.fastjson.JSONObject.parseObject(httpOrgCreateTestRtn, Response.class);得出个Response对象,再get出来就可以了。。。

不懂的话,再问。。。

首先,{"data":"{"amount":"20"}"} 这个属于json格式。只不过这个json的key对应的值是一个json字符串("{"amount":"20"}")。再次获取的时候,需要对字符串解析,转成JSON对象,再取值。例如

 var jsonData = {"data":"{"amount":"20"}"};
 var jsonValue = jsonData.data
 JSON.parse(jsonValue).amount    //这样即可获取到20这个值
 或者
 eval('( + 'jsonValue + ')').amount

看图片,可以取到图片说明
图片说明
图片说明

{
"data": {
"amount": "20"
}
}

多了两个双引号就不是json格式了,会报错吧