JAVA如何解析多层json数据
Posted 造梦者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA如何解析多层json数据相关的知识,希望对你有一定的参考价值。
1. 使用标准的Json对象,如org.json.JSONObject json = new org.json.JSONObject(yourJsonString);然后通过get(keyString)逐个解析
2. 构造一个类MyObject,根据你提出的问题,其中添加 String name,List<MyObject> child, 两个属性,增加getter setter 方法,通过com.google.gson.Gson进行解析。步骤如下:
String jsonStr = "{‘name‘:‘111‘,‘child‘:[{‘name‘:‘222‘,‘child‘:[{‘name‘:‘333‘}]},{‘name‘:‘2221‘}]}";
Gson gson = new Gson();
MyObject obj = gson.fromJson(jsonStr,MyObject.class);
1 import java.util.List; 2 3 import com.google.gson.Gson; 4 5 public class MyObject { 6 String name; 7 List<MyObject> child; 8 public String getName() { 9 return name; 10 } 11 public void setName(String name) { 12 this.name = name; 13 } 14 public List<MyObject> getChild() { 15 return child; 16 } 17 public void setChild(List<MyObject> child) { 18 this.child = child; 19 } 20 21 public static void main(String[] args) { 22 String jsonStr = "{‘name‘:‘111‘,‘child‘:[{‘name‘:‘222‘,‘child‘:[{‘name‘:‘333‘}]},{‘name‘:‘2221‘}]}"; 23 Gson gson = new Gson(); 24 MyObject obj = gson.fromJson(jsonStr,MyObject.class); 25 System.out.println(obj.getChild().get(0).getName()); // --222 26 System.out.println(obj.getChild().get(1).getName()); // --222 27 System.out.println(obj.getChild().get(0).getChild().get(0).getName()); // --333 28 } 29 }
引自http://www.iteye.com/problems/88002 flashsnow 的回答,非常感谢
以上是关于JAVA如何解析多层json数据的主要内容,如果未能解决你的问题,请参考以下文章