![](/img/trans.png)
[英]Parse json field that may be an JSONObject or JSONArray in java
[英]Reading the desired field from the JSON which is neither JSONobject nor JSONArray in Java and MongoDB Integration
我想从 Java 中的以下 JSON 中读取朋友列表。 当我执行以下代码时,我的 java 代码示例显示在帖子中,错误是找不到朋友或其不是数组/对象。 任何帮助表示赞赏。 我尝试了多种代码组合。 JSON 的详细信息基本上是具有一个用户记录的 Mongodb 的集合。
我的JSON:
{
"_id":{
"$oid":"5de5266f63b6a8fbb9eb79be"
},
"ename":[
"A_Jahoor"
],
"twitter":{
"name":[
"test"
],
"screen_name":[
"Jhoor"
],
"location":[
"islamabad pakistan"
],
"created time":[
"Sat Dec 29 16:55:43 +0000 2012"
],
"language":[
null
],
"friends":{
"name":[
"Bikas",
"Jebran Khan",
"Bimal Subedi\ud83c\uddf3\ud83c\uddf5",
"Web Developer",
"June Hunt",
"IJA-ERA",
"Faseeh Ullah",
"Engr Lukman",
"Kamran Ali",
"Iftikhar Ahmad",
"Ahmed-i Konevi",
"tanveer butt",
"Malik Abrar \ud83c\uddf5\ud83c\uddf0",
"Engr Waqas",
"yasir khan"
],
"location":[
"Nepal",
"",
"Seoul,South Korea",
"palandri,Azad Kashmir,Pakistan",
"",
"India",
"",
"Peshawar, Pakistan",
"",
"Islamabad, Pakistan",
"Istanbul, Turkey",
"Punjab, Pakistan",
"Islamabad, Pakistan",
"Peshawar, Pakistan",
""
],
"statuses":[
33,
85,
4102,
1,
1,
171,
9,
2,
3,
38,
7481,
234,
2467,
17,
1
]
}
}
}
我的 Java 代码
String pageName = jsnobject.getJSONObject("_id").getString("$oid");
System.out.println(pageName);
JSONArray arr = jsnobject.getJSONArray("friends");
for (int i = 0; i < arr.length(); i++) {
String post_id = arr.getJSONObject(i).getString("name");
System.out.println(post_id);
}
以下代码解决了我的问题。
String job=((org.bson.Document) it.next()).toJson(); JSONObject jsnobject = new JSONObject(job); List<String> list = new ArrayList<String>(); // System.out.println(job); JSONArray jsonArray = jsnobject.getJSONArray("ename"); String pageName = jsnobject.getJSONObject("_id").getString("$oid"); JSONArray syncresponse = jsnobject.getJSONObject("twitter").getJSONArray("name"); JSONArray syncresponse1 = jsnobject.getJSONObject("twitter").getJSONArray("location"); JSONObject syncresponse2 = jsnobject.getJSONObject("twitter"); JSONArray syncresponse3=syncresponse2.getJSONObject("friends").getJSONArray("name"); System.out.println("User Name:"+syncresponse); System.out.println("User Location:"+syncresponse1); // System.out.println(syncresponse2); System.out.println("User FriendsList:"+syncresponse3);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.