如何解析以下内容以检索以下内容。
{"docs": [
"SolrDocument[{content_type=[text/plain], description=/mnt/sdcard/A.txt, id=4df6fa43-1a99-4475-bc5b-80dd0ab6d114, name=uploadedfile}]",
"SolrDocument[{content_type=[text/plain], description=asdf.png, id=9fb20d5d-cf39-4635-9a22-64560124809e, name=uploadedfile}]"]
}
我需要将描述检索到字符串数组并将id检索到另一个字符串数组。 我试过了
a="docs"
JSONObject jobj = new JSONObject(line);
JSONArray IDS = (JSONArray) jobj.get(a);
这有效,但它返回一个字符串数组
答案 0 :(得分:4)
您尝试解析的数据无效JSON,因此您现在处于RegEx区域。因此,从JSONArray中读取每一行,你可以像这样提取你的内容:
String data = "SolrDocument[{content_type=[text/plain], description=/mnt/sdcard/A.txt, id=4df6fa43-1a99-4475-bc5b-80dd0ab6d114, name=uploadedfile}]";
Pattern values = Pattern.compile("(description|id)=([\\S]+),", Pattern.CASE_INSENSITIVE);
Matcher matches = values.matcher(data);
while(matches.find()) {
System.out.println(matches.group(1) + "=" + matches.group(2));
}
这将打印出来:
description=/mnt/sdcard/A.txt
id=4df6fa43-1a99-4475-bc5b-80dd0ab6d114
答案 1 :(得分:0)
JSONArray“docs”中的元素不是有效的JSON对象。您必须拥有“key”:“value”对才能生效。
例如:
{
"docs": [
{
"id": 912345678901,
"text": "How do I read JSON on Android?",
"geo": null,
"user": {
"name": "android_newb",
"followers_count": 41
}
},
{
"id": 912345678902,
"text": "@android_newb just use android.util.JsonReader!",
"geo": [
50.454722,
-104.606667
],
"user": {
"name": "jesse",
"followers_count": 2
}
}
]
}
有很多网站可以验证您的JSON,例如JSONLint
在我们回答您的问题之前,请修复您的JSON。