我有一个JSON,例如:(服务器端)
myJSON = {
"details":[
{"ui":"3"},
{"vi":"7"},
{"p" :"c:\"}
],
"flowers":[
{"bla"},
{"bla"},
{"bla"},
],
"examples":[
]
};
现在在Titanium我正在拉这个JSON:
var xhr = Ti.Network.createHTTPClient();
xhr.onerror = function(e){
Ti.API.error('Bad Server =>' + e.error);
}
xhr.open('POST', 'http://.....');
xhr.send();
xhr.onload = function(){
response = JSON.parse(this.responseText);
}
现在,当我试图提醒“响应”值时,我看到类似这样的事情:
myJSON = {
"examples":[
],
"flowers":[
{"bla"},
{"bla"},
{"bla"},
],
"details":[
{"ui":"3"},
{"vi":"7"},
{"p" :"c:\"}
],
};
有人能告诉我为什么会逆转吗?
答案 0 :(得分:3)
在JSON(或JavaScript文字表示法或一般的JavaScript对象)中,属性的顺序无法保证或显着。这些对象是等价的:
{
"one": 1,
"two": 2
}
和
{
"two": 2,
"one": 1
}
(您还需要转义\
中的{"p" :"c:\"}
,例如:{"p" :"c:\\"}
。)
要维护订单,您必须使用数组,就像使用details
和flowers
值一样(请注意它们没有被反转)。
另外,请注意您所引用的不是JSON。赠品是myJSON = ...
的开头。您引用的是使用JavaScript对象文字表示法(例如,对象初始值设定项)的赋值语句,用于右侧。