Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript json值_Javascript_Json - Fatal编程技术网

JavaScript json值

JavaScript json值,javascript,json,Javascript,Json,使用JavaScript;如何生成此输出 cell work (123) 456 7890 从这个有效的json {"phone": [ { "@attributes": { "type": "cell", "ext": "" } }, "(123) 456 7890", { "@attributes": { "type": "work", "ext": "" } } ]} 从狭义上讲,你需要这样

使用JavaScript;如何生成此输出

cell
work (123) 456 7890
从这个有效的json

{"phone": [
{
    "@attributes": {
        "type": "cell",
        "ext": ""
    }
}, "(123) 456 7890", {
    "@attributes": {
        "type": "work",
        "ext": ""
    }
}
]}

从狭义上讲,你需要这样做

var jsonObj = JSON.parse(jsonString);

var type = jsonObj.phone[0]['@attributes'].type // "cell"
var phoneNumber = jsonObj.phone[1] // "(123) 456 7890"

但是JSON数据的结构可能会改变,所以不能依赖于0/1索引,而且不管怎样,这种结构很奇怪。正如评论所说,如果它来自XML,则解析它,而不是我看到的重复问题: 简单循环可以帮助:

var tel;
for (var i=0,l=phone.length; i<l; i++) {
  if (phone[i]['@attributes']) {
    if (phone[i-1] && typeof phone[i-1]==='string') {
      tel = phone[i-1];
    } else {
      tel = '';
    }
    console.log(phone[i]['@attributes'].type+' '+tel);
  }
var电话;

对于(var i=0,l=phone.length;iWho创建了一个令人讨厌的JSON文档?它应该是
[{“type”:“cell”},{“type”:“work”,“number”:“(123)456 7890”}]
。这看起来是从XML文档自动生成的。如果是这样的话,你应该改为解析那个XML。@phihag php JSON_从(123)编码4567890@thilo一切..无法访问该电话号码..
phone
是一个数组。您想访问第二个元素。我看不出问题出在哪里?事实上,看起来可能是VCard数据已转换为XML,然后转换为JSON…如果是这样,我想了解这个重复,试图了解问题。然后克索!