Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.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_Search_Lookup - Fatal编程技术网

使用Javascript在JSON中查找值

使用Javascript在JSON中查找值,javascript,json,search,lookup,Javascript,Json,Search,Lookup,我对Javascript非常陌生,并且被赋予了一项任务。我有一个JSON提要,如下所示: var data = { "feeds": { "regions": [{ "name": "Lichtenberg", "id": "01408.b", "suburbs": [{ "name": "Fennpfuhl", "views": 76400 },

我对Javascript非常陌生,并且被赋予了一项任务。我有一个JSON提要,如下所示:

var data = {
  "feeds": {
    "regions": [{
        "name": "Lichtenberg",
        "id": "01408.b",
        "suburbs": [{
            "name": "Fennpfuhl",
            "views": 76400
          },
          {
            "name": "Lichtenberg",
            "views": 87895
          },
          {
            "name": "Rummelsberg",
            "views": 10239
          }
        ]
      },
      {
        "name": "Mitte",
        "id": "03442.f",
        "suburbs": [{
            "name": "Tiergarten",
            "views": 82695
          },
          {
            "name": "Mitte",
            "views": 67234
          },
          {
            "name": "Hansaviertel",
            "views": 10848
          },
          {
            "name": "Moabit",
            "views": 67500
          }
        ]
      },
      {
        "name": "Friedrichshain-Kreuzberg",
        "id": "01991.o",
        "suburbs": [{
            "name": "Friedrichshain",
            "views": "98494"
          },
          {
            "name": "Kreuzberg",
            "views": "27800"
          }
        ]
      },
      {
        "name": "Templehof-Schöneberg",
        "id": "01778.k",
        "suburbs": [{
            "name": "Friedenau",
            "views": 76595
          },
          {
            "name": "Schöneberg",
            "views": 20731
          },
          {
            "name": "Templehof",
            "views": 58000
          },
          {
            "name": "Mariendorf",
            "views": 32300
          }
        ]
      },
      {
        "name": "Pankow",
        "id": "02761.q",
        "suburbs": [{
            "name": "Wießensee",
            "views": 81294
          },
          {
            "name": "Prenzlauer Berg",
            "views": 76470
          },
          {
            "name": "Pankow",
            "views": 90210
          }
        ]
      }
    ],
    "branding": [{
      "municipality_id": "01408.b",
      "brand_color": "#f9cd90"
    }, {
      "municipality_id": "03442.f",
      "brand_color": "#F28123"
    }, {
      "municipality_id": "01991.o",
      "brand_color": "#D34E24"
    }, {
      "municipality_id": "01778.k",
      "brand_color": "#563F1B"
    }, {
      "municipality_id": "02761.q",
      "brand_color": "#38726C"
    }],
    "customer": {
      "name": "Viktoria Tiedemann",
      "date_of_birth": "1981-09-19",
      "address": {
        "street": "Schönfließer Str 9",
        "suburb": "Prenzlauer Berg",
        "postcode": "10439"
      }
    }
  }
};
任务很简单——找到Viktoria Tiedeman的郊区和地区。到目前为止,我已尝试使用以下方法:

var customer_suburb;
var customer_name = 'Viktoria Tiedemann';
for (var i = 0; i < data.feeds.customer.length; i++){
  if (data.feeds.customer.name[i] == customer_name){
    customer_suburb = data.feeds.customer.address.suburb;
  }
}
var客户_郊区;
var客户名称='Viktoria Tiedeman';
对于(变量i=0;i

但它不断返回未定义的值-我哪里出错了?我想用同样的方法得到这个区域

在您的数据中,您只有一个客户,而不是一系列客户,可以通过以下方式访问:

data.feeds.customer
(如果
customer
应该是一个数组,您可以使用以下内容找到Viktoria:
let customer=data.feeds.customer.find(c=>c.name=='Viktoria Tiedeman')

您可以通过以下方式到达郊区:

let suburb = data.feeds.customer.address.suburb
一旦你有了它,你只需要
find()
一个
数组中有这个的区域。对于该
find()
some()
结合使用,可以简洁地做到:

var数据={“feed”:{“regions”:[{“name”:“Lichtenberg”,“id”:“01408.b”,“suburbies”:[{“name”:“fennpfour”,“views”:76400},{“name”:“Lichtenberg”,“views”:87895},{“name”:“Rummelsberg”,“views”:10239},{“name”:“mitt”,“id”:“03442.f”,“suburbies”:[{“name”:“name”:“Tiergarten”,“views”:82695},{“name”:“mitt”,“views”:67234},{“name”:“Hansaviertel”,“视图”:10848},{“名称”:“Moabit”,“视图”:67500},{“名称”:“Friedrichshain Kreuzberg”,“id”:“01991.o”,“郊区”:[{“名称”:“Friedrichshain”,“视图”:“98494”},{“名称”:“Kreuzberg”,“视图”:“27800”},{“名称”:“Templehof Sch neberg”,“id”:“01778.k”,“郊区”:[{“名称”:“Friedenau”,“视图”:“76595},{“名称”:”Schöneberg,“视图”:20731},{“名称”:“Templehof”,“视图”:58000},{“名称”:“Mariendorf”,“视图”:32300},{“名称”:“Pankow”,“id”:“02761.q”,“郊区”:[{“名称”:“Wießensee”,“视图”:81294},{“名称”:“Prenzlauer Berg”,“视图”:76470,{“名称”:“Pankow”,“视图”:90210}],“品牌”{“市政id”:“01408.b”,“品牌颜色”:#f9cd90,{“市政id”:“03442.f”,“品牌颜色”:“市政id”:“01991.o”,“品牌颜色”:“D34E24”},{“市政id”:“01778.k”,“品牌颜色”:“563F1B”},{“市政id”:“02761.q”,“品牌颜色”:“38726C”},“客户”:“姓名”:“Viktoria Tien”,“出生日期”:“1981-09”{Schönfließer街9号,“郊区”:“Prenzlauer Berg”,“邮政编码”:“10439”};
让郊区=data.feeds.customer.address.郊区
让region=data.feeds.regions.find(region=>region.subsection.some(s=>s.name==subsector))

console.log(“郊区:,郊区,地区:,地区.名称)
在您的数据中,您只有一个客户,而不是一组客户,可以通过以下方式访问:

data.feeds.customer
(如果
customer
应该是一个数组,您可以使用以下内容找到Viktoria:
let customer=data.feeds.customer.find(c=>c.name=='Viktoria Tiedeman')

您可以通过以下方式到达郊区:

let suburb = data.feeds.customer.address.suburb
一旦你有了它,你只需要
find()
suburbies
数组中有这个的区域。对于这个
find()
some()
组合的区域,它简洁地做到了:

var data={“feed”:{“regions”:[{“name”:“Lichtenberg”,“id”:“01408.b”,“suburbies”:[{“name”:“Fennpfuhl”,“views”:76400},{“name”:“Lichtenberg”,“views”:87895},{“name”:“Rummelsberg”,“views”:10239},{“name”:“mitt”,“id”:“03442.f”,“suburbiurs”:[{“name”:“name”:“Tiergarten”,“views”:82695},{“name”:“mitt”,“views”:67234},{“name”:Hansaviertel,“视图”:10848},{“名称”:“Moabit”,“视图”:67500},{“名称”:“Friedrichshain Kreuzberg”,“id”:“01991.o”,“郊区”:[{“名称”:“Friedrichshain”,“视图”:“98494”},{“名称”:“Kreuzberg”,“视图”:“27800”},{“名称”:“Templehof Sch neberg”,“id”:“01778.k”,“郊区”:[{“名称”:“Friedenau”,“视图”:“76595},{“名称”:”Schöneberg,“视图”:20731},{“名称”:“Templehof”,“视图”:58000},{“名称”:“Mariendorf”,“视图”:32300},{“名称”:“Pankow”,“id”:“02761.q”,“郊区”:[{“名称”:“Wießensee”,“视图”:81294},{“名称”:“Prenzlauer Berg”,“视图”:76470,{“名称”:“Pankow”,“视图”:90210}],“品牌”{“市政id”:“01408.b”,“品牌颜色”:#f9cd90,{“市政id”:“03442.f”,“品牌颜色”:“市政id”:“01991.o”,“品牌颜色”:“D34E24”},{“市政id”:“01778.k”,“品牌颜色”:“563F1B”},{“市政id”:“02761.q”,“品牌颜色”:“38726C”},“客户”:“姓名”:“Viktoria Tien”,“出生日期”:“1981-09”{Schönfließer街9号,“郊区”:“Prenzlauer Berg”,“邮政编码”:“10439”};
让郊区=data.feeds.customer.address.郊区
让region=data.feeds.regions.find(region=>region.subsection.some(s=>s.name==subsector))

console.log(“郊区:”,郊区,“地区:”,地区名称)
data.feeds.customer
是一个对象,而不是数据中的数组。也许你可以更改它。@zfrisch哦,你是对的。这个数据绝对是违反直觉的。我可以确认
data.feeds.customer
是一个对象。我知道它很奇怪,但我猜它是“学习过程”的一部分,可以说@NinaScholz
data.feeds.customer
是一个对象,而不是数据中的数组。也许你可以更改它。@zfrisch哦,你是对的。这个数据绝对是违反直觉的。我可以确认
data.feeds.customer
是一个对象。我知道它很奇怪,但我猜它是“学习过程”的一部分,可以说@NinaScholzThis是完美的!谢谢!我从未遇到过
find()
some()
以前结合使用-这是一个相当优雅的解决方案!这太完美了!谢谢!我从未遇到
find()
some()
以前结合使用-这是一个相当优雅的解决方案!