三个json框架数据提取

1、fastjson

需要引用的包


    com.alibaba
    fastjson
    1.2.47

代码示例:

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import java.util.LinkedHashMap;

public class JsonPathTest {
    public static void main(String[] args) {

        String json ="{\"msg\":\"登录成功\",\"uid\":\"E2BBEDC09FAA1232B8D85C96DF4444CF\",\"code\":\"1\"}";
        JSONObject object = (JSONObject) JSON.parse(json);
        Object code= object.get("code");
        //json直接转map
        Map map2 = (Map) JSON.parseObject(json, LinkedHashMap.class);
        System.out.println(map2.getClass() +" map2 " +map2);
    }
}

这种方式转换,特点:简单明了,但是对于部分特殊字符无法转换(比如html标签+文件特殊符号),还有个特点:他是直接转换的,而不是逐层转换。

2、jackson(Mapper)

需要引用的包


    com.fasterxml.jackson.core
    jackson-databind
    2.9.5



    com.fasterxml.jackson.core
    jackson-core
    2.9.5



    com.fasterxml.jackson.core
    jackson-annotations
    2.9.5

代码示例:

import java.util.Map;
import java.util.TreeMap;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonPathTest {
    public static void main(String[] args) {
        String json ="{\"msg\":\"登录成功\",\"uid\":\"E2BBEDC09FAA1232B8D85C96DF4444CF\",\"code\":\"1\"}";
ObjectMapper mapper = new ObjectMapper();  
        try {
            Map map= mapper.readValue(json, TreeMap.class);
            System.out.println(map.getClass() +" map1 " +map);
            code= map.get("code");
            } catch (IOException e) {
            e.printStackTrace();
            }
    }
}

这种方式转换json,特点是兼容性高,对于部分特殊字符也能转换成功。 而且转换的时候是逐级转换。

3、JsonPath

需要引用的包


    com.jayway.jsonpath
    json-path
    2.4.0

代码示例:

import com.jayway.jsonpath.JsonPath;

public class JsonPathTest {
    public static void main(String[] args) {
        String json ="{\"msg\":\"登录成功\",\"uid\":\"E2BBEDC09FAA1232B8D85C96DF4444CF\",\"code\":\"1\"}";
        JSONObject object = (JSONObject) JSON.parse(json);
        Object code= object.get("code");
        //取code值,用"$.code"(通用写法)
        code= JsonPath.read(json2, "$.code");
        System.out.println(code.getClass() +"  "  +code);
    }
}

JsonPath是从JSON文档中抽取指定的信息的工具。这种方式结构清晰,可读性高,复杂度低,非常容易匹配。

你可能感兴趣的:(三个json框架数据提取)