1

我有一个已转换为下面列出的 json 的 xml 文件。我一直试图弄清楚如何从每个属性中检索 -Name 和 -Value ,但没​​有运气。我猜我需要创建一个等于 jsonobj.Media.Attribute[i] 的子对象,但是一旦我这样做就无法访问 -Name 或 -Value。有什么建议么?

jsonobj= {
      "Media": {
            "Attribute": [
              {
                "-Name": "Keywords",
                "-Value": "keyword value"
              },
              {
                "-Name": "Title",
                "-Value": "title value"
              },
              {
                "-Name": "Description",
                "-Value": "description value"
              },
              {
                "-Name": "Author",
                "-Value": "author value"
              },
              {
                "-Name": "Copyright",
                "-Value": "copyright value"
              }
            ]
          }
        };
4

4 回答 4

2

这将提醒您正在寻找的所有值:

var list = jsonobj.Media.Attribute
for(index in list)
{
    var obj = list[index];
    var name = obj["-Name"];
    var value = obj["-Value"];

    alert(name);
    alert(value);
}
于 2013-02-27T19:28:34.953 回答
1

迭代 jsonobj.Media.Attribute 并使用 ['-Name'] 检索值

for(var i = 0; i < jsonobj.Media.Attribute.length ; i++)
{
 var attr = jsonobj.Media.Attribute[i]
 alert(attr["-Name"]);
 alert(attr["-Value"]);
}
于 2013-02-27T19:29:32.557 回答
0

你不能-在代码中使用,因为它是一个操作符,JS不会把它识别为一个方法。

要解决您的问题,您可以使用其他方式访问属性。

否则你的代码: jsonobj.Media.Attribute[i].-Name

您可以使用: jsonobj.Media.Attribute[i].["-Name"]

调用的相同之处,例如: jsonobj.["Media"].Attribute[i].["-Name"]

于 2013-02-27T19:43:46.900 回答
0

它无法识别关键属性。说无法读取未定义的属性“属性”。

于 2013-05-15T07:02:02.137 回答