解析json的3种方法有哪些?相关方法介绍

阳光 2021-06-09 16:27:13 java常见问答 6930

JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。那解析json的3种方法有哪些?下面来我们就来给大家讲解一下解析json的3种方法。

一.官方解析

官方提供的 json 解析方式,比较繁琐,所以用的人比较少。

第一步,引入依赖:

<!--json官方-- > <dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20160810</version></dependency>

第二步,编写测试代码:

package org.example;
import org.json.JSONObject;
import org.springframework.stereotype.Component; /** * 官方解析 */
@Componentpublic class JsonTest1
{
    /** * 对象转json * @param user * @return */
    public String userToJson(User user)
    {
        JSONObject jsonObject = new JSONObject(user);
        String jsonStr = jsonObject.toString();
        return jsonStr;
    }
    /** * json转对象 * @param json * @return */
    public User userFromJson(String json)
    {
        JSONObject jsonObject = new JSONObject(json);
        String name = jsonObject.getString("name");
        String sex = jsonObject.getString("sex");
        int age = jsonObject.getInt("age");
        User user = new User(name, sex, age);
        return user;
    }
}

第三步,单元测试:

package org.example;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath:spring.xml") public class JsonTest1Test
{
    @Autowired
    private JsonTest1 jsonTest1;
    @Test
    public void userToJson()
    {
        User user = new User("秦明", "man", 18);
        String json = jsonTest1.userToJson(user);
        System.out.println(json);
    }
    @Test
    public void userFromJson()
    {
        String json = "{\"sex\":\"man\",\"name\":\"秦明\",\"age\":18}";
        User user = jsonTest1.userFromJson(json);
        System.out.println(user);
    }
}

第四步,查看结果。

二.谷歌 Gson 解析

第一步,引入依赖:

<!--gson-- > <dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.5</version></dependency>

第二步,编写测试代码:

package org.example;
import com.google.gson.Gson;
import org.springframework.stereotype.Component; /** * gson解析 */
@Componentpublic class JsonTest2
{
    /** * 对象转json * @param user * @return */
    public String userToJson(User user)
    {
        Gson gson = new Gson();
        String json = gson.toJson(user);
        return json;
    }
    /** * json转对象 * @param json * @return */
    public User userFromJson(String json)
    {
        Gson gson = new Gson();
        User user = gson.fromJson(json, User.class);
        return user;
    }
}

第三步,单元测试:同上(下面第三步和第四步和上面都一样,所以下面省略)

第四步,查看结果:同上

三.阿里巴巴 FastJson 解析

这个解析方式是由阿里巴巴开发出来的,效率最高,深受大家喜爱,功能强大,想要更深入学习的可以查看 FastJson 官网API。

第一步,引入依赖:

<!--fastjson-- > <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.47</version></dependency>

第二步,编写测试代码:

package org.example;
import com.alibaba.fastjson.JSONObject;
import org.springframework.stereotype.Component; /** * fastjson解析 */
@Componentpublic class JsonTest3
{
    /** * 对象转json * @param user * @return */
    public String userToJson(User user)
    {
        String json = JSONObject.toJSONString(user);
        return json;
    }
    /** * json转对象 * @param json * @return */
    public User userFromJson(String json)
    {
        User user = JSONObject.parseObject(json, User.class);
        return user;
    }
}

这就是解析json的3种方法,大家在实际工作中,如果遇到解析json的,可以使用以上的几种方法去解析哦!最后大家如果想要了解更多json工具教程知识,敬请关注奇Q工具网。

推荐阅读:

json数据怎么处理?json格式如何转换?

java架构师有什么证书么?需要具备什么能力?

java怎么做一个登录页面?简单登陆界面实现