JSON 的使用方法

Posted wangguoning

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSON 的使用方法相关的知识,希望对你有一定的参考价值。

JSON--javascript Object Notation,是一种轻量级的数据交互格式,本质是特定格式的字符串,相比xml更简洁,现在是客户端与服务器端交互的最常用选择,已经很少用xml了

JSON格式:1.JSON对象{key1:value1,key2:value2,}   2.JSON数组[value1,value2]

先考入jar包,其中json.jar是官方jar包,fastjson.jar是阿里巴巴开发的jar包,在解析JSON数据时,官方包不如阿里巴巴的使用方便,可以通过如下代码进行比较:

 

 

package com.hanqi.test;

public class User {

    private int userID;
    private String userName,password;
    public User(int userID, String userName, String password) {
        super();
        this.userID = userID;
        this.userName = userName;
        this.password = password;
    }
    public int getUserID() {
        return userID;
    }
    public void setUserID(int userID) {
        this.userID = userID;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public User() {
        super();
    }
    @Override
    public String toString() {
        return "User [userID=" + userID + ", userName=" + userName + ", password=" + password + "]";
    }
}
package com.hanqi.test;

import java.util.ArrayList;
import java.util.List;

import org.json.JSONException;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class TestJSON {

    public static void main(String[] args) {
        //测试JSON解析 
        
        //1从对象(集合)到JSON字符串
        
        User u1 = new User(999,"tom","123456");
        
        //导入阿里巴巴   JSON对象  jar包
        String ju1=JSONObject.toJSONString(u1);
        System.out.println("ju1="+ju1);
        
        //集合
        List<User> lu = new ArrayList<User>();
        lu.add(new User(111,"User1","111"));
        lu.add(new User(222,"User2","111"));
        lu.add(new User(333,"User3","111"));
        lu.add(new User(444,"User4","111"));

        //导入阿里巴巴 JSON集合  jar包
        String jlu = JSONArray.toJSONString(lu);
        System.out.println("jlu="+jlu);
        
        //2从JSON字符串到集合(对象)
        //阿里巴巴JSON 可以直接将JSON字符串转为对象
        User u2 =JSONObject.parseObject(ju1,User.class);
        System.out.println("u2="+u2);
        
        
        try {
            //名字冲突使用全路径  官方jar包
            //官方jar包不能直接转为对象,只能获取对象的单个值
            org.json.JSONObject jo = new org.json.JSONObject(ju1);
            
            int userid = jo.getInt("userID");            //只能获取单个值
            System.out.println("userID="+userid);
            
            
        } catch (JSONException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
        //字符串集合
        //使用阿里巴巴jar包可以直接得到对象的集合
        List<User> lu2 = JSONArray.parseArray(jlu,User.class);
        //遍历集合
        for(User u:lu2)
        {
            
            System.out.println(u);
        }
        
        try {
            //使用官方jar包 必须解析JSON数组
            org.json.JSONArray ja = new org.json.JSONArray(jlu);
            
            //使用官方jar包   解析JSON数组时一次只能获取其中的一个JSON对象
            org.json.JSONObject  u3=  ja.getJSONObject(0);
            
            System.out.println("u3="+u3);
        
        
        } catch (JSONException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
        
    }

}

 

以上是关于JSON 的使用方法的主要内容,如果未能解决你的问题,请参考以下文章

实用代码片段将json数据绑定到html元素 (转)

使用 json rereiver php mysql 在片段中填充列表视图

json 可视代码工作室Angular with Firebase片段

vs code 用户代码片段 html.json

如何从片段中的 JSON 响应中的对象获取数据

将 JSON 字符串从片段传递到适配器的问题