如何从多个JSON对象中获取数组?
我想把这个JSON文件变成数组:如何从多个JSON对象中获取数组?
{“Elements”:[{“LowerTolerance”:1.4,“Name”:“abc”,“ReferenceValue”:1.5,UpperTolerance:1.6,有效 “:假的,” 价值 “:1.8},{” LowerTolerance “:20,” 姓名 “:” 高清”, “ReferenceValue”:21.5, “UpperTolerance”:23, “有效”:真正的 “价值”:22.8 },{ “LowerTolerance”:4.5, “名称”: “GHI”, “ReferenceValue”:5 “UpperTolerance”:5.5, “有效”:假, “值”:4}], “KAMERA”: “C1” }
这里是一个有序的树的形式JSON文件的图片:JSON file
我想得到这样lowertolerance阵列[],名[],referencevalue []等,所以当我打电话的元素阵列我得到它的价值。例如: 名[2] = GHI或referencevalue [0] = 1.5
我发现这一点:https://*.com/questions/6857468/converting-a-js-object-to-an-array#=
现在我有,我不知道,当你有内部的对象做什么的问题像我这样的对象。
我尝试这样做:
var o = {"Elements": [{"LowerTolerance": 1.4, "Name": "abc", "ReferenceValue": 1.5, "UpperTolerance": 1.6}, {"LowerTolerance": 1.4, "Name": "abc", "ReferenceValue": 1.5, "UpperTolerance": 1.6}, {"LowerTolerance": 1.4, "Name": "abc", "ReferenceValue": 1.5, "UpperTolerance": 1.6}], "Kamera": "c1"};
var arr = $.map(o, function(el) { return el; })
document.getElementById("output").innerHTML = arr;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="output">
</div>
(需要的jQuery)
的输出中是:“[对象的对象],[对象的对象],[对象的对象] C1" 。 我需要做些什么来获得主对象内的对象?
如果你能帮助我,你会让我真的很开心!
这里是我的问题的一个简单的例子:
\t var myObj = [{1:1, 2:2, 3:3}, {4:4, 5:5, 6:6}];
\t var array = $.map(myObj, function(value, index) {
\t \t return [value];
\t });
\t document.getElementById("output").innerHTML = array;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="output"></p>
您的JSON对象:
myJson = {"Elements":[{"LowerTolerance":1.4,"Name":"abc","ReferenceValue":1.5,"UpperTolerance":1.6,"Valid":false,"Value":1.8},{"LowerTolerance":20,"Name":"def","ReferenceValue":21.5,"UpperTolerance":23,"Valid":true,"Value":22.8},{"LowerTolerance":4.5,"Name":"ghi","ReferenceValue":5,"UpperTolerance":5.5,"Valid":false,"Value":4}],"Kamera":"c1"}
创建每个阵列,例如:
0123现在,遍历您的JSON和每个值推到数组:
for (var i=0; i<myJson.Elements.length; i++) {
lowerToleranceArray.push(myJson.Elements[i].LowerTolerance);
}
现在,你有你的lowerTolerance阵列。对于其他数组也是一样的(推入同一个循环)。
使用ES6
for...of
循环:
var jsonObj = {
\t "Elements": [{
\t \t "LowerTolerance": 1.4,
\t \t "Name": "abc",
\t \t "ReferenceValue": 1.5,
\t \t "UpperTolerance": 1.6,
\t \t "Valid": false,
\t \t "Value": 1.8
\t }, {
\t \t "LowerTolerance": 20,
\t \t "Name": "def",
\t \t "ReferenceValue": 21.5,
\t \t "UpperTolerance": 23,
\t \t "Valid": true,
\t \t "Value": 22.8
\t }, {
\t \t "LowerTolerance": 4.5,
\t \t "Name": "ghi",
\t \t "ReferenceValue": 5,
\t \t "UpperTolerance": 5.5,
\t \t "Valid": false,
\t \t "Value": 4
\t }],
\t "Kamera": "c1"
};
let lowertolerance = [];
let name = [];
let referencevalue = [];
let uppertolerance = [];
let valid = [];
let value = [];
for (let item of jsonObj.Elements) {
lowertolerance.push(item.LowerTolerance);
name.push(item.Name);
referencevalue.push(item.ReferenceValue);
uppertolerance.push(item.UpperTolerance);
valid.push(item.Valid);
value.push(item.Value);
}
console.log("lowertolerance :", lowertolerance);
console.log("name :", name);
console.log("referencevalue :", referencevalue);
console.log("uppertolerance :", uppertolerance);
console.log("valid :", valid);
console.log("value :", value);
太谢谢你了!这工作完美。 – Joh