json与string转换:com.alibaba.fastjson.JSONObject

4,061 阅读1分钟

在实际的使用中经常会需要将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"}]}

从结果看好像strjson区别不大,但是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"}

轻松根据索引获取了需要的数据。