如何迭代json数组

时间:2016-11-14 17:59:54

标签: javascript jquery

我使用Gson库从java创建一个json,它返回给我类似的东西:

[{"title":"title1","author":"author1"},{"title":"title2","author":"author2"}] 

如何解析和访问js文件中的值?

6 个答案:

答案 0 :(得分:1)

我使用了很多w3schools网站here

var text = '{"name":"John Johnson","street":"Oslo West 16","phone":"555 1234567"}';

var obj = JSON.parse(text);

document.getElementById("demo").innerHTML =
obj.name + "<br>" +
obj.street + "<br>" +
obj.phone;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h2>JSON Object Creation in JavaScript</h2>

<p id="demo"></p>

答案 1 :(得分:1)

在JS中获取这些实际上非常简单,因为JSON对象只被js视为对象。

你可以这样做:

for (let i = 0; i < myArray.length; i++) {
    let currObj = myArray[i];
    let keys = Object.keys(currObj);
    for (let j = 0; j < keys.length; j++) {
        let myValue = keys[j];
        doSomethingWithMyValue(myValue);
    }
}

这将获得数组中每个对象的每个键的每个值。这应该为这些对象如何工作提供了一个很好的基线。

编辑:值得注意的是,还有一个Object.values(obj)方法,它将按顺序返回对象中所有值的列表,但它目前的浏览器支持非常差,因此您更安全使用Object.keys然后迭代上面显示的键。

答案 2 :(得分:1)

很难说您想要对数据做什么,以及是否存在重复的标题,如您的示例所示。然而...

 var a = [{"title":"title1","author":"author1"},{"title":"title2","author":"author2"}];
 a.forEach(function(v) {
   doSomething(v.title, v.author);
 });

应该有效

答案 3 :(得分:1)

使用for循环

如果您将JSON作为数组

var json = [{"title":"title1","author":"author1"},{"title":"title2","author":"author2"}];
for (var i = 0; i < json.length; i++) {
	console.log(json[i].title, json[i].author);
}

如果您将JSON作为字符串

var string = '[{"title":"title1","author":"author1"},{"title":"title2","author":"author2"}]';
var json = JSON.parse(string);

for (var i = 0; i < json.length; i++) {
	console.log(json[i].title, json[i].author);
}

答案 4 :(得分:1)

&#13;
&#13;
//Here an example ---
var elements=[{id:123, name:'lorem'},{id:456, name:'ipsum'},{id:998, name:'verrugas'}];
for (item in elements){
   console.log(elements[item].name);
}  
&#13;
&#13;
&#13;

答案 5 :(得分:0)

好的,这是一个非常的菜鸟问题。

首先,要访问我必须做的事情,比如

data.title

在我的情况下,我有一个数组,所以我不得不使用像

这样的东西
var j = JSON.parse(data);
      for (var i = 0; i < j.length ; i++) {
         console.log(j[i].title);
      }

当我第一次运行这个函数时,它说&#34; JSon意外的标识符Object,因为Gson已经返回json并且javascript试图创建一个json的json,所以我删除了JSON.parse (数据)现在可以了!

全部谢谢