这种json用java怎么解析?
{"code":"11","msg":"查询成功","result":{"宁夏图书馆":"111","首都图书馆":"111","AS":"16"},"success":true}
关键是这里{"宁夏图书馆":"111","首都图书馆":"111"}这样的怎么解析?
public static void main(String[] args) {
String a = "{\"code\":\"11\",\"msg\":\"查询成功\",\"result\":{\"宁夏图书馆\":\"111\",\"首都图书馆\":\"111\",\"AS\":\"16\"},\"success\":true}";
Map o = JSONObject.parseObject(a, Map.class);
Map map1 =(Map) o.get("result");
System.out.println(map1.toString());
Object object = map1.get("宁夏图书馆");
System.out.println(object);
}
执行结果
111
data.result[i]
先把json转成map a 然后a.get("result")强转成map b b.get("宁夏图书馆")
1.
JSONObject json = JSONObject.fromObject(jsonString);
User user = new User();
user.setName(json.getString("name"));
user.setPassword(json.getString("password"));
user.setEmail(json.getString("email"));
System.out.println(user.toString());
- JSONArray jsonArray = JSONArray.fromObject(json);
ArrayList users = new ArrayList();
JSONObject originJson = new JSONObject(originString);
JSONObject resultJson = originJson.getJSONObject("result");//此时的resultJson = {"宁夏图书馆":"111","首都图书馆":"111","AS":"16"}
String str1 = resultJson.getString("宁夏图书馆");//str1 = “111”
String str2 = resultJson.getString("首都图书馆");//str2 = “111”
String str3 = resultJson.getString("AS");//str3 = “16”
1.
JSONObject json = JSONObject.fromObject(jsonString);
User user = new User();
user.setName(json.getString("name"));
user.setPassword(json.getString("password"));
user.setEmail(json.getString("email"));
System.out.println(user.toString());
JSONArray jsonArray = JSONArray.fromObject(json);
ArrayList users = new ArrayList();
不是,我要是想直接get("宁夏图书馆"),我还至于提问么。我希望有个map(String,String),来一组一组的存,或者两个String数组来分别存储名字和值。在不知道任何图书馆名字的情况下,获取所有图书馆和对应值。
你可以做两次转换
先将以上转化成String,在做处理
Map resultMap= (Map)JSON.parse(要转换的字符串);
JSONArray jsonArray = JSONArray.fromObject(resultMap.get("result").toString()); //再取你要的那个result对象,这样就可以获取到你想要的信息了
Object[] strs = jsonArray.toArray(); //json转为数组 可以循环输出了
我之前也遇到过,就是这样解决的,你应该也可以
String xx="{'code':'11','msg':'查询成功','result':{'宁夏图书馆':'111','首都图书馆':'111','AS':'16'},'success':true}";
JSONObject a =JSONObject.fromObject(xx);
System.out.println(a.get("code"));
System.out.println(a.get("msg"));
System.out.println(a.get("success"));
JSONObject b=(JSONObject) a.get("result");
System.out.println(b.get("宁夏图书馆"));
System.out.println(b.get("首都图书馆"));
System.out.println(b.get("AS"));
不知道是不是楼主想要的
@Test
public void test() throws JsonParseException, JsonMappingException, IOException{
ObjectMapper om = new ObjectMapper();
String str = "{\"code\":\"11\",\"msg\":\"查询成功\",\"result\":{\"宁夏图书馆\":\"111\",\"首都图书馆\":\"111\",\"AS\":\"16\"},\"success\":true}";
Map map =om.readValue(str, Map.class);
Map temp = (Map)map.get("result");
String string = temp.get("AS");
System.out.println(string);
String string1 = temp.get("宁夏图书馆");
System.out.println(string1);
}
pom
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.4</version>
</dependency>
JSON 将 result 转 jsonArray 然后便利JSONArray