在 appcelerator 上解析 JSON
parsing JSON on appcelerator
我有这样的网络服务:
{"person":{"name account":"Jhon Doe","Image":"image/test","Adress":"New York 43","Recomendations":"40"}}
这就是我想要做的,当我打印 datos
时,我得到了整个 json 但是当我尝试只打印名称或图像时,我没有得到任何东西
var urll = "example.com/example";
var json;
var xhrr = Ti.Network.createHTTPClient({
onload: function() {
json = JSON.parse(this.responseText);
var datos = JSON.stringify(json);
var medicos = datos;
Ti.API.info("Json! "+datos);
}
});
xhrr.open('GET', urll);
xhrr.send();
我试过 datos[0].person
、datos.person
但什么都没有
我刚刚找到解决方案:
Ti.API.info("Json! "+json.person.Recomendations);
您必须了解包含对象的 JSON 表示 的字符串与对象之间的区别本身。
您的 json
变量包含对象(这就是 JSON.parse(...)
所做的 - 将文本字符串转换为对象)。在对象上,您可以引用您发现的属性。您可以通过两种方式执行此操作:
json.person.Address
json.person['name account']
我建议您尽量避免使用名称不是有效标识符的属性(如两者中的后者),因为这会使它们的使用变得有点困难 - 例如通过不允许点符号。
另一方面,您的 datos
变量包含 json
对象的字符串表示形式(正如 JSON.stringify(...)
所做的那样 - 将对象转换为其字符串表示形式)。这意味着 datos 与 this.responseText 相同(因为您首先 parse
它然后 stringify
它返回)。
所以 JSON.stringify(...)
是使对象“人类可读”的绝妙方法,但您需要该对象来处理数据。
希望这能稍微澄清一下条款;-)
/约翰
我有这样的网络服务:
{"person":{"name account":"Jhon Doe","Image":"image/test","Adress":"New York 43","Recomendations":"40"}}
这就是我想要做的,当我打印 datos
时,我得到了整个 json 但是当我尝试只打印名称或图像时,我没有得到任何东西
var urll = "example.com/example";
var json;
var xhrr = Ti.Network.createHTTPClient({
onload: function() {
json = JSON.parse(this.responseText);
var datos = JSON.stringify(json);
var medicos = datos;
Ti.API.info("Json! "+datos);
}
});
xhrr.open('GET', urll);
xhrr.send();
我试过 datos[0].person
、datos.person
但什么都没有
我刚刚找到解决方案:
Ti.API.info("Json! "+json.person.Recomendations);
您必须了解包含对象的 JSON 表示 的字符串与对象之间的区别本身。
您的 json
变量包含对象(这就是 JSON.parse(...)
所做的 - 将文本字符串转换为对象)。在对象上,您可以引用您发现的属性。您可以通过两种方式执行此操作:
json.person.Address
json.person['name account']
我建议您尽量避免使用名称不是有效标识符的属性(如两者中的后者),因为这会使它们的使用变得有点困难 - 例如通过不允许点符号。
另一方面,您的 datos
变量包含 json
对象的字符串表示形式(正如 JSON.stringify(...)
所做的那样 - 将对象转换为其字符串表示形式)。这意味着 datos 与 this.responseText 相同(因为您首先 parse
它然后 stringify
它返回)。
所以 JSON.stringify(...)
是使对象“人类可读”的绝妙方法,但您需要该对象来处理数据。
希望这能稍微澄清一下条款;-)
/约翰