繁体   English   中英

从 Java 和 MongoDB 集成中既不是 JSONobject 也不是 JSONArray 的 JSON 中读取所需的字段

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM