我是JSON的新手,并希望提供一些信息。我有一个地址的JSON对象,如下所示。同一键中有多个地址,中间用||分隔。
原始JSON是:{“地址”:“宾夕法尼亚州夏普市营地123死区驱动器||宾夕法尼亚州哈里斯堡456 N街”};
我正在尝试重新格式化此JSON,使其具有2个不同的地址,并以逗号分隔,如下所示。
{"Address":
"Formatted Address" :
"Street Address":"123 dead drive"
"City": "camp hill"
"State": "PA" ,
"Formatted Address" :
"Street Address":"456 N Street"
"City": "Harrisburg"
"State": "PA"
}
我正在尝试这样的事情
$(function() {
var resultJSON = '{"Address":"123 dead drive,camp hill,PA || 456 N Street,Harrisburg, PA"}';
var result = $.parseJSON(resultJSON);
var splitresult = result.Address.split("||");
address = [];
$(splitresult).each(function(index) {
address.push({'Formatted': splitresult[index]});
});
var json0bj = JSON.stringify(address);
console.log(json0bj);
});
编辑:注释代码以显示已完成的操作。对您的代码进行了一些小的更改:
$(function() {
var resultJSON = '{"Address":"123 dead drive,camp hill,PA || 456 N Street,Harrisburg, PA"}';
var result = $.parseJSON(resultJSON);
var splitresult = result.Address.split(" || ");
address = [];
$(splitresult).each(function(index, element) {
// $.each passes the element as the second argument. We'll use that.
var adrArray = element.split(',');
// We split the string on commas to get the address fragments and place them into a new object:
var formattedAddress = {
"Street Address": adrArray[0],
"City": adrArray[1],
"State": adrArray[2]
};
// Then push it onto the array:
address.push({
'Formatted Adress': formattedAddress
});
});
//To make the result look like the one you want we put the array into a new structure:
var addressObject = {
"Address": address
};
var jsonObj = JSON.stringify(addressObject);
document.write("<code>"+jsonObj+"</code>")
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句