我有一个以下 Json,想要打印键和值。
我们收到的数据为
{\"dcFlag\":null,\"code\":null,\"packageQuantity\":null,\"analgesicTax\":false,\"shelfTicketName\":null,\"productType\":null,\"itemSizeValue\":null,\"unit\":null,\"unitPriceRequired\":false,\"unitPriceMeasure\":null,\"unitPriceDisplay\":null,\"itemSizeUOM\":null,\"australiaMadeGrown\":null,\"departmentCat\":null,\"categoryCat\":null,\"commodityCat\":null,\"subCommodityCat\":null,\"selectedUnit\":null,\"toConsumer\":true,\"toRetailer\":true,\"taxName\":\"1\",\"taxRate\":null,\"countryOfOrigin\":null}"
JSON.parse之后数据被转换为
{"dcFlag":null,"code":null,"packageQuantity":null,"analgesicTax":false,"shelfTicketName":null,"productType":null,"itemSizeValue":null,"unit":null,"unitPriceRequired":false,"unitPriceMeasure":null,"unitPriceDisplay":null,"itemSizeUOM":null,"australiaMadeGrown":null,"departmentCat":null,"categoryCat":null,"commodityCat":null,"subCommodityCat":null,"selectedUnit":null,"toConsumer":true,"toRetailer":true,"taxName":"1","taxRate":null,"countryOfOrigin":null}
我试过了
var obj = JSON.parse(result);
console.log(obj);
$.each(obj, function(k, v) {
//display the key and value pair
console.log(k + ' is ' + v);
});
它抛出一个错误
Uncaught TypeError: Cannot use 'in' operator to search for '455' in
有什么意见吗? 感谢您的帮助。
最佳答案
不要使用parse
,因为结果
已经被解析。
var obj = {"dcFlag":null,"code":null,"packageQuantity":null,"analgesicTax":false,"shelfTicketName":null,"productType":null,"itemSizeValue":null,"unit":null,"unitPriceRequired":false,"unitPriceMeasure":null,"unitPriceDisplay":null,"itemSizeUOM":null,"australiaMadeGrown":null,"departmentCat":null,"categoryCat":null,"commodityCat":null,"subCommodityCat":null,"selectedUnit":null,"toConsumer":true,"toRetailer":true,"taxName":"1","taxRate":null,"countryOfOrigin":null};
$.each(obj, function(k, v) {
//display the key and value pair
console.log(k + ' is ' + v);
});
console.log(obj);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
如果结果
包含反斜杠那么它工作正常:
var result = '{\"dcFlag\":null,\"code\":null,\"packageQuantity\":null,\"analgesicTax\":false,\"shelfTicketName\":null,\"productType\":null,\"itemSizeValue\":null,\"unit\":null,\"unitPriceRequired\":false,\"unitPriceMeasure\":null,\"unitPriceDisplay\":null,\"itemSizeUOM\":null,\"australiaMadeGrown\":null,\"departmentCat\":null,\"categoryCat\":null,\"commodityCat\":null,\"subCommodityCat\":null,\"selectedUnit\":null,\"toConsumer\":true,\"toRetailer\":true,\"taxName\":\"1\",\"taxRate\":null,\"countryOfOrigin\":null}"';
debugger;
result=result.slice('0','-1');
var obj = JSON.parse(result);
$.each(obj, function(k, v) {
//display the key and value pair
console.log(k + ' is ' + v);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
关于javascript - 解析时Json值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48686894/