我想遍历一个JSON对象树,但找不到任何库.这似乎并不困难,但感觉就像重新发明轮子一样.
在XML中,有很多教程展示了如何使用DOM遍历XML树:(
我有一系列同类物体,如此;
[
{
"foo" : "bar",
"bar" : "sit"
},
{
"foo" : "lorem",
"bar" : "ipsum"
},
{
"foo" : "dolor",
"bar" : "amet"
}
]
Run Code Online (Sandbox Code Playgroud)
我想用关键字搜索这些对象的值(而不是键),并返回包含任何值中的关键字的对象数组.
因此,例如,使用关键字r,我将获得所有对象(对象#1中的"baR",对象#2中的"loRem"和对象#3中的"doloR").使用关键字lo,我会得到对象2和3("LOrem"和"doLOr")a,我会得到对象1和3,("bAr"和"Amet").foo但是使用关键字,我会得到一个空数组,因为"foo"是一个键,并且在任何值中都找不到(不像"bar")......你明白了.
我该怎么做呢?非常感谢提前!
让我们假设我有一个巨大的(1000+)对象列表,如下所示:
[{name: 'john dow', age: 38, gender:'m'}, {name: 'jane dow', age: 18, gender:'f'}, ..]
Run Code Online (Sandbox Code Playgroud)
我想按名称过滤此列表(明智的字符).
filter('j') => [{name: 'john dow', age: 38, gender:'m'}, {name: 'jane dow', age: 18, gender:'f'}, ..]
filter('jo') => [{name: 'john dow', age: 38, gender:'m'}, ..]
filter('dow') => [{name: 'john dow', age: 38, gender:'m'}, {name: 'jane dow', age: 18, gender:'f'}, ..]
Run Code Online (Sandbox Code Playgroud)
最高性能的方法是什么?RegEx显然是其中一个关键,如果你假设用户通常从一开始就倾向于从名字开始也可能是一个好主意,事先对列表进行排序,但这只会在某些情况下有所帮助.
是否有用于映射过滤器的JavaScript内置函数?我希望这些比JavaScript实现更快.
PS:是的我想在客户端进行过滤,因为我想提供"离线功能".
我看到了这段代码:
$("ul li").text().search(new RegExp("sometext", "i"));
Run Code Online (Sandbox Code Playgroud)
并想知道这是否可以扩展到任何字符串?
我想完成以下任务,但它不起作用:
$("li").attr("title").search(new RegExp("sometext", "i"));
Run Code Online (Sandbox Code Playgroud)
此外,任何人都有这个功能的jQuery文档的链接?我显然在Google上搜索失败了.
我有一个 Json 数组,我只想从中获取一个 Json 对象。在此示例中,我如何使用 Apple 获取对象
[
{
"name": "mango",
"use": "DA",
"date": "2011-09-26",
"seed": "31341"
},
{
"name": "apple",
"use": "DA",
"date": "2011-09-26",
"seed": "31341"
},
{
"name": "berry",
"use": "DA",
"date": "2011-09-26",
"seed": "31341"
}
]
Run Code Online (Sandbox Code Playgroud)
以前我曾经通过它的索引位置获取它,但由于 json 不保证我的订单/安排,这就是为什么我需要专门获取一个对象而不使用索引方法。
有我的 JSON 结构:
{
"date":"19.11.2013",
"parent":{
"child1":[
{
"date":"2013-11-19",
"time":"10:30",
},
{
"date":"2013-11-19",
"time":"12:20",
}
],
"child2":[
{
"date":"2013-11-19",
"time":"10:30",
},
{
"date":"2013-11-19",
"time":"12:20",
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
这是我目前的代码:
public class json {
public static void main(String[] args) throws IOException, ParseException {
URL urlData = new URL("http://path.to/json");
BufferedReader reader = new BufferedReader(new InputStreamReader(
urlData.openConnection().getInputStream(), "utf-8"));
String struct = reader.readLine();
JSONParser parser = new JSONParser();
Object obj = parser.parse(struct);
JSONObject lev1 = (JSONObject) obj;
System.out.println(lev1.get("date"));
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了一个日期值(19.11.2013 …
javascript ×4
json ×4
java ×2
filter ×1
jquery ×1
json-simple ×1
list ×1
object ×1
performance ×1
search ×1
string ×1