Gus*_*Dev 0 json titanium appcelerator appcelerator-titanium
我有这样的网络服务:
{"person":{"name account":"Jhon Doe","Image":"image/test","Adress":"New York 43","Recomendations":"40"}}
Run Code Online (Sandbox Code Playgroud)
这就是我想要做的,当我打印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();
Run Code Online (Sandbox Code Playgroud)
我试过datos[0].person,datos.person但没有
您必须了解包含对象的JSON 表示的字符串与对象本身之间的区别.
您的json变量包含对象(这是什么JSON.parse(...)- 将文本字符串转换为对象).在对象上,您可以参考您发现的属性.您可以通过两种方式执行此操作:
json.person.Address
json.person['name account']
Run Code Online (Sandbox Code Playgroud)
我建议您尝试避免名称不是有效标识符的属性(作为后两者),因为这使得使用它们更加困难 - 例如,不允许使用点符号.
datos另一方面,您的变量包含json对象的字符串表示形式(正如JSON.stringify(...)那样 - 将对象转换为其字符串表示形式).这意味着数据与this.responseText相同(因为你首先parse它然后stringify它回来).
因此,这JSON.stringify(...)是使对象" 人类可读 " 的绝佳方式,但您需要使用该对象来处理数据.
希望这澄清一点条款;-)
/约翰
| 归档时间: |
|
| 查看次数: |
1054 次 |
| 最近记录: |