如何在json中循环并获得特定值

How to loop through json and get a specific value?

本文关键字:循环 json      更新时间:2023-09-26

我可能会将json作为单个或多个数据源,我需要对其进行解析以获得特定的值。

如何获取一个特定的值,然后将其放入一个字符串中,并比较这些值以获得下面表示的单个字符串。

var info;
info= {
 "rows": [
 {
  "id": 1,
  "data": [ "", "1", "s", "Al", "A" ]
 }
 ]
};
info= {
 "rows": [
 {
  "id": 1,
  "data": [ "", "1", "s", "Al", "A" ]
 },
 {
  "id": 2,
  "data": [ "", "1", "s", "Az", "A" ]
 },
 {
  "id": 3,
  "data": [ "", "2", "s", "Co", "A" ]
 }
]
};

var jsonData;

我不知道如何在json中循环并提取数据[1],然后将每个值放入字符串中,例如:1,1,2。

var jstring = jsonData 

这是我要放入字符串中的每个项目的对应项。

$.each([ jstring ], function( index, value ) {
 if(g.includes(string)) {
  console.log(value + " exists");
 }
  else
 {
  g = g + value;
 }
});

我想要的是g看起来像:1,2

任何帮助都将不胜感激。

这样的东西怎么样:

var outputString = info.rows.reduce(function(arr, row){
    return arr.concat(row.data[1]); 
}, []).join(","); 

以下是一些关于reduce如何工作的文档的链接:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

基本上,是一个数组,因此reduce将向该数组中的每个项应用一个函数,并使用所谓的累加器"跟踪"输出。在这种情况下,我们的累加器是arr变量。对于行数组中的每个项,我们将该值连接到累积的数组中,然后将该值传递给下一次迭代。我们传递空括号作为第二个参数,以减少为初始值,这意味着我们希望从一个空数组开始。一旦reduce完成运行,我们就剩下一个数组,在这种情况下,它看起来像[1,1,2]。这时,我们可以使用.join(",")将新数组中的每个项连接成一个字符串,用逗号分隔。