通过嵌套的json对象循环并显示kay /值对
问题描述:
我有json对象,我想要打印它的key/value
对组合。但我的对象是嵌套的一个。所以我想遍历每个对象并显示它的键/值对。通过嵌套的json对象循环并显示kay /值对
小提琴:http://jsfiddle.net/ydzsaot5/
代码:
var html='';
var contextObj = {"CategoryID":"1","BillerID":"23","BillerName":"MERCS","RequestType":"QuickPay","AccountNo":"1234567890","Authenticator":"{\"EmailAddress\":\"dfgsdfgsdfg\",\"MobileNumber\":\"65-4576573\",\"ID\":\"4572-4756876-8\"}","Token":"3C639AE65"};
html = getKeyValueJson(contextObj, html);
$('div').html(html);
function getKeyValueJson(obj, html) {
$.each(obj, function (key, value) {
if (value == null) {
return
}
if (typeof value == 'object') {
getKeyValueJson(value, html);
}
else {
html += '<label>' + key + '</label> :- <label>' + value + '</label><br>';
}
});
return html;
}
我想以这种方式来打印:
....
AccountNo :- 1234567890
EmailAddress :- dfgsdfgsdfg
MobileNumber :- 65-4576573
....
Token :- 3C639AE65
答
问题是在你的JSON和在你的代码,你刚刚给它字符串
"{\"EmailAddress\":\"dfgsdfgsdfg\",\"MobileNumber\":\"65-4576573\",\"ID\":\"4572-4756876-8\"}"
将其更改为
{"EmailAddress":"dfgsdfgsdfg","MobileNumber":"65-4576573","ID":"4572-4756876-8"}
var html = '';
var contextObj = {
"CategoryID": "1",
"BillerID": "23",
"BillerName": "MERCS",
"RequestType": "QuickPay",
"AccountNo": "1234567890",
"Authenticator": "{\"EmailAddress\":\"dfgsdfgsdfg\",\"MobileNumber\":\"65-4576573\",\"ID\":\"4572-4756876-8\"}",
"Token": "3C639AE65"
};
html = getKeyValueJson(contextObj, html);
$('div').html(html);
function getKeyValueJson(obj, html) {
$.each(obj, function(key, value) {
value = parseIt(value) || value;
if (value == null) {
return
}
console.log(typeof value);
if (typeof value == 'object') {
html += getKeyValueJson(value, html);
} else {
html += '<label>' + key + '</label> :- <label>' + value + '</label><br>';
}
});
return html;
}
function parseIt(str) {
try { return JSON.parse(str); } catch(e) { return false; }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div>
</div>
你可以解决这个问题,而不改变'json'对象? – Shaggy 2014-10-09 06:00:44
你可以使用像'JSON.parse()' – 2014-10-09 06:01:31
这样的东西,如果你在小提琴中展示它会很棒 – Shaggy 2014-10-09 06:04:01