如何使用 getJSON 中存在的键值创建 JSON 文件的子集?
How do I create a subset of a JSON file using key values that exist in both using getJSON?
我有一个很大的 JSON 文件,我想用它创建一个使用 vars 的子集,我将把它存储在 localStorage 中。我更喜欢 jQuery 但也欢迎其他方法。
id(将存在于两个地方)将用于匹配并确定 keys/values 应该是新子集的一部分。
"master" JSON 文件的结构类似于:
{
"myStuff": [
{
"id": "53b0c01de4b0deedb5c9015f",
"brief": "Joe's Stuff",
"author": "Joe"
},
{
"id": "545fb8c4e4b03cfb303de9f2",
"brief": "Jim's Stuff",
"author": "Jim"
},
{
"id": "54676ae4e4b09ffed41ffc7c",
"brief": "Mary's Stuff",
"author": "Mary"
}
]
}
我可以灵活地决定将如何确定子集的项目 presented.It 将始终包含多个值。这些是 "id" 值以匹配主 JSON 文件中现有的 "id" 值。
例如,我可以从 localStorage 中获取如下所示的字符串:
{"id1":"545fb8c4e4b03cfb303de9f2","id2":"54676ae4e4b09ffed41ffc7c"}
或者像这样简单:
545fb8c4e4b03cfb303de9f2, 54676ae4e4b09ffed41ffc7c
欢迎就哪种方法可能更好提出建议。
因此,在这种情况下,子集应该 return 只是 Jim 和 Mary 的东西,而忽略 Joe。
{
"myStuffSubset": [
{
"id": "545fb8c4e4b03cfb303de9f2",
"brief": "Jim's Stuff",
"author": "Jim"
},
{
"id": "54676ae4e4b09ffed41ffc7c",
"brief": "Mary's Stuff",
"author": "Mary"
}
]
}
如果我在解释中遗漏了什么,请告诉我。而且,我发现小提琴可以帮助我最好地学习。谢谢!
我已经为你创建了一个plnkr。
基本上,过滤器函数将获取以逗号分隔的字符串并在您的 JSON:
中搜索
function search(str, obj) {
var arr = str.split(',');
return obj.myStuff.filter(function(o) {
return arr.indexOf(o.id) > -1;
});
}
我有一个很大的 JSON 文件,我想用它创建一个使用 vars 的子集,我将把它存储在 localStorage 中。我更喜欢 jQuery 但也欢迎其他方法。
id(将存在于两个地方)将用于匹配并确定 keys/values 应该是新子集的一部分。
"master" JSON 文件的结构类似于:
{
"myStuff": [
{
"id": "53b0c01de4b0deedb5c9015f",
"brief": "Joe's Stuff",
"author": "Joe"
},
{
"id": "545fb8c4e4b03cfb303de9f2",
"brief": "Jim's Stuff",
"author": "Jim"
},
{
"id": "54676ae4e4b09ffed41ffc7c",
"brief": "Mary's Stuff",
"author": "Mary"
}
]
}
我可以灵活地决定将如何确定子集的项目 presented.It 将始终包含多个值。这些是 "id" 值以匹配主 JSON 文件中现有的 "id" 值。
例如,我可以从 localStorage 中获取如下所示的字符串:
{"id1":"545fb8c4e4b03cfb303de9f2","id2":"54676ae4e4b09ffed41ffc7c"}
或者像这样简单:
545fb8c4e4b03cfb303de9f2, 54676ae4e4b09ffed41ffc7c
欢迎就哪种方法可能更好提出建议。
因此,在这种情况下,子集应该 return 只是 Jim 和 Mary 的东西,而忽略 Joe。
{
"myStuffSubset": [
{
"id": "545fb8c4e4b03cfb303de9f2",
"brief": "Jim's Stuff",
"author": "Jim"
},
{
"id": "54676ae4e4b09ffed41ffc7c",
"brief": "Mary's Stuff",
"author": "Mary"
}
]
}
如果我在解释中遗漏了什么,请告诉我。而且,我发现小提琴可以帮助我最好地学习。谢谢!
我已经为你创建了一个plnkr。
基本上,过滤器函数将获取以逗号分隔的字符串并在您的 JSON:
中搜索function search(str, obj) {
var arr = str.split(',');
return obj.myStuff.filter(function(o) {
return arr.indexOf(o.id) > -1;
});
}