我想从轰鸣声JSON数据中解析verse_nr和verse。任何人都可以帮助我..
{"book":[{"book_ref":"Ps","book_name":"Psalms","book_nr":"19","chapter_nr":"16","chapter":{"8":{"verse_nr":"8","verse":"I have set the LORD always before me: because he is at my right hand, I shall not be moved."}}}],"direction":"LTR","type":"verse","version":"kjv"}
答案 0 :(得分:1)
您需要使用JSON Parser库。以下是org.json.解析器的示例。
JSONObject root = new JSONObject(inputJSON);
JSONObject chapter = root.getJSONArray("book")
.getJSONObject(0).getJSONObject("chapter");
JSONObject verse = chapter.getJSONObject(JSONObject.getNames(chapter)[0]);
基本上,您只需链接JSON getters ,直到找到verse
对象。在那里,您可以使用getString()
作为
System.out.println(verse.getString("verse_nr"));
System.out.println(verse.getString("verse"));
输出:
8
我把耶和华永远摆在我面前,因为他在我右边,我不会动摇。
答案 1 :(得分:0)
您必须使用JSONObject
和JSONArray
对其进行迭代。
您可以使用以下命令生成类:http://www.jsonschema2pojo.org/只需确保检查'Json'而不是'Json Schema',因为这是原始json。然后你可以使用gson自动将其转换为那些生成的类。这样做的指南: http://www.javacodegeeks.com/2011/01/android-json-parsing-gson-tutorial.html
如果这是来自服务器,我建议使用精彩的Retrofit库,只需几行代码即可完成上述所有工作;可以在此处找到执行此操作的教程:http://inaka.net/blog/2014/10/10/android-retrofit-rest-client/
无论如何,如果想通过上述解决方案忽略让您的生活更轻松,手动执行此操作您将执行以下操作:
String jsonLiteral = /* your json remember to escape the double quotes */
JSONObject root = new JSONObject(jsonLiteral);
// Get Strings from a JSONObject as
String direction = root.getString("direction");
// You have a single element array, so you need to get that
JSONObject singleElement = root.getJSONArray("book").getJSONObject(0);
// Then you can Strings from it like direction above
String bookRef = singleElement.getString("book_ref");
您还可以使用以下方法获得一个漂亮的输出来检查json结构: http://jsonformatter.curiousconcept.com/