在实际的使用中经常会需要将string
转成json
类型
String转为json对象
public class Str2Json {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "{\"cases\"[{\"classname\":\"HttpGet\",\"url\":\"https://www.baidu.com\"},{\"classname\":\"HttpPost\",\"url\":\"https:www.qq.com\"}]}";
JSONObject json;
json = JSON.parseObject(str);
System.out.println(json);
}
}
输出结果:
{"cases":[{"classname":"HttpGet","url":"https://www.baidu.com"},{"classname":"HttpPost","url":"https:www.qq.com"}]}
从结果看好像str
和json
区别不大,但是json
支持的方法已经改变,可以直接通过json
提取相关的内容了。具体如下:
public class Str2Json {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "{\"cases\"[{\"classname\":\"HttpGet\",\"url\":\"https://www.baidu.com\"},{\"classname\":\"HttpPost\",\"url\":\"https:www.qq.com\"}]}";
JSONObject json;
json = JSON.parseObject(str);
System.out.println(json.getString("cases"));
}
}
输出结果:
[{"classname":"HttpGet","url":"https://www.baidu.com"},{"classname":"HttpPost","url":"https:www.qq.com"}]
还有其他的方法,根据需要使用就好。例如json.getJSONArray("cases")
,可以直接转成list
类型
String转JSONArray
public class Str2Json {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "{\"cases\"[{\"classname\":\"HttpGet\",\"url\":\"https://www.baidu.com\"},{\"classname\":\"HttpPost\",\"url\":\"https:www.qq.com\"}]}";
JSONObject json;
json = JSON.parseObject(str);
String jsonstr = json.getString("cases");
System.out.println(JSONArray.parseArray(jsonstr));
}
}
输出结果:
[{"classname":"HttpGet","url":"https://www.baidu.com"},{"classname":"HttpPost","url":"https:www.qq.com"}]
可以看成jsonstr
是个String
类型,获取到里面完整的元素有点困难,转成JSONArray
类型后,与使用list
元素类似
public class Str2Json {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "{\"cases\"[{\"classname\":\"HttpGet\",\"url\":\"https://www.baidu.com\"},{\"classname\":\"HttpPost\",\"url\":\"https:www.qq.com\"}]}";
JSONObject json;
json = JSON.parseObject(str);
String jsonstr = json.getString("cases");
System.out.println(JSONArray.parseArray(jsonstr).get(0));
}
}
输出结果:
{"classname":"HttpGet","url":"https://www.baidu.com"}
轻松根据索引获取了需要的数据。