【问题标题】:Get one JSON value with another?用另一个获取一个 JSON 值?
【发布时间】:2023-03-05 05:08:01
【问题描述】:

我有这个 JSON 字符串:

{
"XXX": {
  "x": "1",
  "y": "2"
},
"XXX": {
  "x": "3",
  "y": "3"
  }
}

我想做的是找到 x 值(它等于 1 或其他值。)然后找到旁边的 y 值。 我该怎么做?

我想用 JavaScript 来做这个

【问题讨论】:

  • “我想用 JQuery 或 JavaScript 来做这件事” 那么,继续吧。当你遇到困难时在这里问一个问题。 (顺便说一句,jQuery Javascript。)
  • 我不知道是什么创建了这个 JSON,但是一个具有两次相同属性的对象不会给你预期的结果。我什至不确定所有 JSON 解析器是否会返回相同的结果或不只是抛出。

标签: javascript jquery json


【解决方案1】:

解析它并对其进行迭代

var data = JSON.parse('{"XXX":{"x":"1","y":"2"},"XXX":{"x":"3","y":"3"}}');

var y = 0;
$.each(data, function(i, item) {
    alert('With Jquery X = '+item.x);
    alert('With Jquery Y = '+item.y);
    //if you want to get the value of y based on x or vice versa then check
    if(item.x == 3) {
       y = item.y;
    }   
 });
    // Then you can use the value of y here.
    alert('This is the matching Y = '+ y);
    
    
    
    
    // With Plain Js
    for(key in data) {
  alert( 'With Plain JS X = '+data[key].x );
    alert( 'With Plain JS Y = '+data[key].y );
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

【讨论】:

  • 但是 XXX 是未知的,所以我想找到 X = 2 的位置并从那里得到 Y。
  • @Ras.M 你不需要知道 xxx 键。阅读代码,它没有引用 xxx,它在每次迭代中为您提供 xxx 的值,并且您知道它是一个对象,因此您可以从中获取 x 和 y 的值
  • 另外,上面的代码只会给你 3 个 x 和 y。由于两个对象的键是相同的,即 xxx,所以最后一个采用解析对象中 xxx 的值
  • 当我运行代码时,我只得到最后一个 X 和 Y 而不是第一对。
【解决方案2】:

使用 Json 解析。

一个简单的例子:

var text = '{"employees":[' +
'{"firstName":"John","lastName":"Doe" },' +
'{"firstName":"Anna","lastName":"Smith" },' +
'{"firstName":"Peter","lastName":"Jones" }]}';

obj = JSON.parse(text);
document.getElementById("demo").innerHTML =
obj.employees[1].firstName + " " + obj.employees[1].lastName;
document.getElementById("demo1").innerHTML =
obj.employees[2].firstName + " " + obj.employees[2].lastName;
document.getElementById("demo2").innerHTML =
obj.employees[1].firstName + " " + obj.employees[2].lastName;
<h2>Create Object from JSON String</h2>
<p id="demo"></p>
<p id="demo1"></p>
<p id="demo2"></p>

【讨论】:

  • 我想做像 Where firstName = John get lastName
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-18
  • 1970-01-01
  • 1970-01-01
  • 2017-08-27
  • 1970-01-01
  • 2019-05-04
  • 1970-01-01
相关资源
最近更新 更多