2015-11-03 77 views
1

如何从json字符串获取申请cat2的价值..........如何从JSON字符串

的代码,我用来获取json获取的申请“CAT2”值字符串下面提到...

Gson gson = new Gson() 
//convert java object to JSON format 
String json = gson.toJson(obj); 
System.out.println(json); 

....控制台输出..........

{ 
"feed": [ 
    { 
     "cat1": "test", 
     "cat2": "test", 
     "cat3": "test", 
     "title": "test" 
    } 
], 
"bigimage": 0 
} 

什么建议立即进行删除d我进一步得到cat2内的值,即test

+0

JSON字符串是你的对象只是一种表象,换句话说,你需要的字符串是简单的'obj.getFeed()[0] .getCat2( )'? (或者'obj.getFeed()。get(0).getCat2()'如果它是一个列表。假设你在你的对象中有合适的getter。 –

+0

这两个方法包含什么getFeed()和getCat2() –

+0

你使用Gson通过'String json = gson.toJson(obj);'将你的'obj'转换成Json,因此你的'obj'具有一个“feed”属性是一个逻辑,它是一个对象的列表/数组有变量cat1,cat2,cat3和title。只要属性没有映射不同,它们应该简单地可访问。 –

回答

3
JsonParser parser = new JsonParser(); 

JsonElement jsonElement = parser.parse(json); 
JsonObject jsonObj = jsonElement.getAsJsonObject(); 

JsonArray feed = new JsonArray(); 
feed = jsonObj.getAsJsonArray("feed"); 

JsonObject jsonOb = feed.get(0).getAsJsonObject(); 
String value = jsonOb.get("cat2").getAsString(); 

这是你如何能得到的cat2value。您将需要添加com.google.gson库来编译此代码。

+0

kruti最后两行显示错误,即JsonObject jsonObject = feed.getAsJsonObject(0);显示错误“remove参数匹配getAsJsonObject()”和String value = jsonObject.get(“cat2”);显示为“将值类型更改为JsonElement” –

+0

@sourabhshukla:更正。我的坏。 –

+0

:) supercool ....它的作品:) –

1

添加下面的代码,并尝试:

JsonParser parser = new JsonParser(); 
JsonElement jsonElement = parser.parse(data); 
JsonObject jsonObj = jsonElement.getAsJsonObject(); 
JsonArray feed = jsonObj.getAsJsonArray("feed");//get the feed arry from json 
JsonObject jsonObject = feed.get(0).getAsJsonObject();//get the first feed element 
System.out.println(jsonObject.get("cat2"));//displays test