java – 使用GSON解析json对象与json数组
发布时间:2020-12-15 00:22:11 所属栏目:Java 来源:网络整理
导读:我有一个 JSON是单个对象或同一对象的数组.有没有办法使用Gson解析这些数据,它会区分单个对象与数组? 我目前唯一的解决方法是手动解析json,并用try catch来包围它.首先,我将尝试将其解析为单个对象,如果失败,它将抛出异常,然后我将尝试将其解析为数组. 我不
我有一个
JSON是单个对象或同一对象的数组.有没有办法使用Gson解析这些数据,它会区分单个对象与数组?
我目前唯一的解决方法是手动解析json,并用try catch来包围它.首先,我将尝试将其解析为单个对象,如果失败,它将抛出异常,然后我将尝试将其解析为数组. 我不想手动解析,这将永远需要我. public class ObjectA implements Serializable{ public String variable; public ObjectB[] objectb; //or ObjectB objectb; public ObjectA (){} } 这是可以是数组或单个对象的对象. public class ObjectB implements Serializable{ public String variable1; public String variable2; public ObjectB (){} } 然后当与json响应进行交互时.我在做这个 Gson gson = new Gson(); ObjectA[] objectList = gson.fromJson(response,ObjectA[].class); 当ObjectA的数组被序列化时,json包含ObjectB的数组或单个对象. [ { "variable": "blah blah","objectb": { "variable1": "1","variable2": "2" } },{ "variable": "blah blah","objectb": [ { "variable1": "1","variable2": "2" },{ "variable1": "1","variable2": "2" } ] } ] 解决方法
我刚刚将ObjectB []更改为List< ObjectB>进入ObjectA声明.
ArrayList<ObjectA> la = new ArrayList<ObjectA>(); List<ObjectA> list = new Gson().fromJson(json,la.getClass()); for (Object a : list) { System.out.println(a); } 这是我的结果: {variable=blah blah,objectb={variable1=1,variable2=2}} {variable=blah blah,objectb=[{variable1=1,variable2=2},{variable1=1,variable2=2}]} 我认为,在完整的泛型时代,如果您没有特定的需求,您可以从阵列切换到列表,您也可以使用Gson也可以使用灵活的解析来获得许多好处. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |