JSON:
{
"prop":"property",
"inputInfo":{
"sku":"6157068",
"inputText":"iphone"
}
}
代码:
JSONObject inputObject = JSON.parseObject(input);
String prop = (String)inputObject.get("property");
但如何获得' sku'的内层? &安培; '的inputText'?
我在Java中使用阿里巴巴json库。
答案 0 :(得分:2)
我没有使用阿里巴巴库,但是它没有getJSONObject()
方法可以在inputObject
上使用吗?我以前做过这个,但是我使用了org.json
库。
<强> JSON:强>
{"circle":{
"radius":255819.07998349078,
"center":{
"lat":00.000000000000000,
"lng":00.000000000000000
}
}
}
<强>爪哇强>
JSONObject shape = new JSONObject(entity.getJsonLocation());
double latitude = shape.getJSONObject("circle")
.getJSONObject("center")
.getDouble("lat");
double longitude = shape.getJSONObject("circle")
.getJSONObject("center")
.getDouble("lng");
此示例例如获取JSON并创建JSONObject shape
。然后,我可以通过调用getJSONObject()
上的shape
来获取内部json对象。
我希望这可以帮到你。
答案 1 :(得分:0)
您可以先创建一个bean,例如
public class DemoInfo {
private String id;
private String city;
public void setId(String id) {
this.id = id;
}
public String getId() {
return id;
}
public void setCity(String city) {
this.city = city;
}
public String getCity() {
return city;
}
}
然后,
String s = "{\"id\":\"0375\",\"city\":\"New York\"}";
DemoInfo info = JSON.parseObject(s, DemoInfo.class);
或者您可以使用地图。
JSON.parseObject(s, HashMap.class);
答案 2 :(得分:0)
你可以这样做,
JSONObject inputInfoObject = inputObject.getJSONObject("inputInfo");
String sku = inputInfoObject.getString("sku");
String inputText = inputInfoObject.getString("inputText");
答案 3 :(得分:0)
如果您可以使用GSON,则可以使用以下内容
public static void main(String[] args) throws IOException {
String json = "{\"prop\":\"property\",\"inputInfo\":{\"sku\":\"6157068\",\"inputText\":\"iphone\"}}";
Gson gson = new Gson();
HashMap<String, Object> res = gson.fromJson(json, HashMap.class);
for (Map.Entry<String, Object> entry : res.entrySet()) {
if ("inputInfo".equalsIgnoreCase(entry.getKey())) {
HashMap<String, Object> map = gson.fromJson(String.valueOf(entry.getValue()), HashMap.class);
for (Map.Entry<String, Object> child : map.entrySet()) {
System.out.println(child.getKey() + " : " + child.getValue());
}
}
}
}
结果是
inputText : iphone
sku : 6157068.0