Javascript 如何过滤json对象数据?
Json对象的输入:Javascript 如何过滤json对象数据?,javascript,jquery,Javascript,Jquery,Json对象的输入: {"data":[ {"itemID":100,"Testcase1":"aaa","status":"Active"}, {"itemID":100,"Testcase1":"bbb","status":"No"}, {"itemID":100,"Testcase1":"ccc","status":"Active"}, {"itemID":101,"Testcase1":"zzz","status":"Active"} ]} [{
{"data":[
{"itemID":100,"Testcase1":"aaa","status":"Active"},
{"itemID":100,"Testcase1":"bbb","status":"No"},
{"itemID":100,"Testcase1":"ccc","status":"Active"},
{"itemID":101,"Testcase1":"zzz","status":"Active"}
]}
[{
"itemID":"100",
"Testcase1":"aaa",
"Testcase1":"bbb",
"Testcase1":"ccc",
"status":"Active",
"status":"No",
"status":"Active"
},
{
"itemID":"101",
"Testcase1":"zzz",
"status":"Active"
}]
Json对象的预期输出:
{"data":[
{"itemID":100,"Testcase1":"aaa","status":"Active"},
{"itemID":100,"Testcase1":"bbb","status":"No"},
{"itemID":100,"Testcase1":"ccc","status":"Active"},
{"itemID":101,"Testcase1":"zzz","status":"Active"}
]}
[{
"itemID":"100",
"Testcase1":"aaa",
"Testcase1":"bbb",
"Testcase1":"ccc",
"status":"Active",
"status":"No",
"status":"Active"
},
{
"itemID":"101",
"Testcase1":"zzz",
"status":"Active"
}]
有人帮我吗?假设您的JSON对象是字符串,您可以对其调用JSON.parse: 这将为您提供以下结构中的数据: 您的预期输出不是有效的对象。对象键必须是唯一的。一个对象不能有三个Testcase1键或三个状态键。您只需要从数据对象中提取对象 那么,一个纯JS解决方案:
var obj = {"data":[{"itemID":100,"Testcase1":"aaa","status":"Active"},
{"itemID":100,"Testcase1":"bbb","status":"No"},{"itemID":100,"Testcase1":"ccc","status":"Active"},
{"itemID":101,"Testcase1":"zzz","status":"Active"}]};
var newArray = [];
for( var i = 0; i < obj['data'].length; i++) {
newArray.push(obj['data'][i]);
}
还有一个现场演示:查看控制台以了解结果>[对象,对象,对象,对象]这可能对您有所帮助。这不是正确的方法。因为对象中不允许重复密钥。不管你要求什么。我已经创建了一个您所需格式的字符串 请核对一下
你能解释一下你想用什么样的过滤器吗?是的,我想像预期的输出一样重新构造对象,它只是从数据对象中提取对象。该对象无效。不能在对象上多次使用同一属性。因此,拥有Testcase1:aaa、Testcase1:bbb、Testcase1:ccc是行不通的。更不用说它没有用了。我猜他想从数据对象中提取对象数组,但对此不确定。@enguerranws他想从3个具有相同属性的对象中提取一个对象itemID@Spokey我只是理解:用这种方式显示重复值如果你不想重复值,你应该在你的问题中说出来?