在实际的使用中经常会需要将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"}
轻松根据索引获取了需要的数据。