我的应用程序中有一个JSON字符串/对象.
{"list": [
{"name":"my Name","id":12,"type":"car owner"},
{"name":"my Name2","id":13,"type":"car owner2"},
{"name":"my Name4","id":14,"type":"car owner3"},
{"name":"my Name4","id":15,"type":"car owner5"}
]}
Run Code Online (Sandbox Code Playgroud)
我的应用程序中有一个过滤器框,当我在该框中键入一个名称时,我们必须过滤该对象并显示结果.
例如,如果用户输入"name"并点击搜索,那么我们必须在JSON对象中搜索全名并返回数组,就像MySQL搜索一样......
我的问题是用字符串过滤json对象并返回数组....
你好(对不起我的英文)
我正在使用angularjs前端网站,使用SPRING MVC生成json的web服务.spring mvc使用JsonIdentityInfo选项进行seralization,因此每个对象只在json中写入一次,并且每次使用一个引用,例如她有2个"计算机"使用相同的对象"component",所以spring将id设置为第一个组件("@componentID":2)和第二个组件juste id(2):
[
{
"@computerID": 1,
"component": {
"@componentID": 2,
"processor": 2,
"ram": "8g",
"harddrive": "wd"
}
},
{
"@computerID": 3,
"component": 2
}
]
Run Code Online (Sandbox Code Playgroud)
我想要的是 :
[
{
"@computerID": 1,
"owner" : "Mister B",
"component": {
"@componentID": 2,
"processor": 2,
"ram": "8g",
"harddrive": "wd"
}
},
{
"@computerID": 3,
"owner" : "Mister A",
"component": {
"@componentID": 2,
"processor": 2,
"ram": "8g",
"harddrive": "wd"
}
}
]
Run Code Online (Sandbox Code Playgroud)
我做了很多搜索代码谁做了这个,但我没有发现任何想法.
我无法编辑Web服务以删除此行为.我可以使用javascript或jquery(或其他librairie)编辑客户端的json,以用真实引用的对象替换引用吗?(数据实际上更复杂,更深,我在对象中有3级子对象).
非常感谢.
我使用此代码从sJhonny的问题中找到json对象所需的部分
数据样本
TestObj = {
"Categories": [{
"Products": [{
"id": "a01",
"name": "Pine",
"description": "Short description of pine."
},
{
"id": "a02",
"name": "Birch",
"description": "Short description of birch."
},
{
"id": "a03",
"name": "Poplar",
"description": "Short description of poplar."
}],
"id": "A",
"title": "Cheap",
"description": "Short description of category A."
},
{
"Product": [{
"id": "b01",
"name": "Maple",
"description": "Short description of maple."
},
{
"id": "b02",
"name": "Oak",
"description": "Short description of oak."
},
{
"id": …Run Code Online (Sandbox Code Playgroud) 我有一个JSON字符串,并被绑定到一个javascript对象
{
"results":[
{
"id":"460",
"name":"Widget 1",
"loc":"Shed"
},{
"id":"461",
"name":"Widget 2",
"loc":"Kitchen"
}]
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在javascript中"查询"这个数据,所以我可以搜索ID为460并返回名称和loc(除了循环整个对象)?我有jQuery和Prototypejs可供使用.
考虑以下嵌套的 JSON:
{
"state": [
"Tennessee"
],
"more_data": [
{
"letters": {
"last": "e",
"first": "T"
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想以平面方式在 JavaScript 中打印 JSON,即 root_key=value:
var my_json_str = "{\"state\":[\"Tennessee\"],\"more_data\":[{\"letters\":{\"first\":\"T\",\"last\":\"e\"}}]}";
console.log(my_json_str);
my_json = jQuery.parseJSON(my_json_str);
for (var key in my_json) {
console.log(key,":",my_json[key]);
}
Run Code Online (Sandbox Code Playgroud)
但我得到(FireBug 控制台):
state : ["Tennessee"]
more_data : [Object { letters={...}}]
Run Code Online (Sandbox Code Playgroud)
而不是所需的:
state:["Tennessee"]
more_data:[{"letters":{"first":"T","last":"e"}}]
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
解决方案 - 按照您的回答:
var jsonStr = "{\"state\":[\"Tennessee\"],\"more_data\":[{\"letters\":{\"first\":\"T\",\"last\":\"e\"}}]}";
var jsonObj = JSON.parse(jsonStr);
for (key in jsonObj) {
console.log(key+':'+JSON.stringify(jsonObj[key]));
}
?
Run Code Online (Sandbox Code Playgroud)
这使:
state:"Tennessee"
more_data:{"letters":{"first":"T","last":"e"}}
Run Code Online (Sandbox Code Playgroud) 我从PHP脚本返回以下数组.
$data = [
{
"id": "1",
"created_at": "2015-01-02 15:17:29",
"updated_at": "2015-01-02 15:17:29",
"name": "Minecraft",
"description": "",
"location": "ideaLab",
"cost": "20.00",
"min_age": "7",
"max_age": null,
"start_date": "2014-11-06",
"end_date": "2014-12-11",
"start_time": "16:30:00",
"end_time": "17:30:00",
"registration_start_date": "2014-10-28",
"registration_end_date": "0000-00-00",
"program_id": "1",
"max_attendees": "12"
},
{
"id": "2",
"created_at": "2015-01-02 15:17:29",
"updated_at": "2015-01-02 15:17:29",
"name": "Mini Makers",
"description": "",
"location": "ideaLab",
"cost": "18.00",
"min_age": "9",
"max_age": "7",
"start_date": "2014-11-04",
"end_date": "2014-12-09",
"start_time": "16:30:00",
"end_time": "17:30:00",
"registration_start_date": "2014-10-28",
"registration_end_date": "0000-00-00",
"program_id": "2",
"max_attendees": "20" …Run Code Online (Sandbox Code Playgroud)