首頁 > web前端 > js教程 > 主體

JsonObject是什麼

(*-*)浩
發布: 2022-04-07 15:30:42
原創
11698 人瀏覽過

JSONObject是一種資料結構,可以理解為JSON格式的資料結構,即「key-value」結構,其格式為「{"key1":value1,"key2",value2.... }”;JSONObject添加元素可以使用put和get方法。

JsonObject是什麼

本教學操作環境:windows7系統、java8版、DELL G3電腦。

JSONObject是一種資料結構,可以理解為JSON格式的資料結構(key-value 結構),可以使用put方法為json物件新增元素。 JSONObject可以很方便的轉換成字串,也可以很方便的把其他物件轉換成JSONObject物件。

JsonObject的格式:

{"key1":value1,"key2",value2....}
登入後複製

key 必須是字串。

jsonobject作用是什麼?

JsonObject 就是常說的 json。是一種重要的資料傳輸物件。

因為ajax要求不刷新頁面,但配合js可以實現局部刷新,因此json常常被用來作為非同步請求的回傳物件使用。

透過response.getWriter()取得PrintWriter pw,然後pw.print(json)。如果沒有設定response.setContentType("application/json; charset=utf-8"); 則需要自己再js中解析。

JSONObject新增元素可以使用put(key,value)方法和呼叫元素方法get(key),這兩種方法大家可以任選一種,另外JsonObject是一種重要的資料傳輸對象,是實際工作中是不可或缺的。

一、建構json

1、實例化一個JSONObject 對象,用put() 方法將資料寫入。

JSONObject obj = new JSONObject();
obj.put(key, value);
登入後複製

2、使用HashMap建構

實際上即先建立好一個HashMap 物件並且將資料打包進去,而後在建立JSONObject 時將其作為一個參數傳進去。

Map<String, Object> data = new HashMap<String, Object>();
data.put("name", "John");
data.put("sex", "male");
data.put("age", 22);
data.put("is_student", true);
data.put("hobbies", new String[] {"hiking", "swimming"});

JSONObject obj = new JSONObject(data);
// 或是下面这种写法,将 java 对象转换为 json 对象
JSONObject obj = JSONObject.fromObject(data);
登入後複製

3、使用JavaBean建構

這種方法在實際中比較常用。
建立 javaBean:

public class PersonInfo {
    private String name;
    private String sex;
    private int age;
    private boolean isStudent;
    private String[] hobbies;
登入後複製

建置 json:

PersonInfo info = new PersonInfo();
info.setName("John");
info.setSex("male");
info.setAge(22);
info.setStudent(true);
info.setHobbies(new String[] {"hiking", "swimming"});

JSONObject obj = new JSONObject(info);
// 或是下面这种写法,将 java 对象转换为 json 对象
JSONObject obj = JSONObject.fromObject(data);
登入後複製

注意: JavaBean一定要有 getter 方法,否則會無法存取儲存的資料。

二、解析 json

解析 json 主要是基本型別如 Number、boolean 等,與陣列 Array。
基本型別的解析直接呼叫 JSONObject 物件的 getXxx(key) 方法,如果取得字串則 getString(key),布林值則 getBoolean(key)。
陣列的解析需要透過 JSONObject 物件的 getJSONArray(key) 方法取得到一個 JSONArray 對象,再呼叫 JSONArray 物件的 get(i) 方法取得陣列元素,i 為索引值。

1、只包含一個物件的 json 字串解析

//将得到json数据转换为一个json对象
JSONObject jsonObject = new JSONObject(data);
//获取"persons"的json对象
jsonObject = jsonObject.getJSONObject("persons");
//通过相应的get方法,获取相应的属性
int id = jsonObject.getInt("id");
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
//将获取到的数据放到一个Person对象中
Person person = new Person(id, name, age);
登入後複製

2、含有多個物件的 json 字串

List<Person> list = new ArrayList<>();
//将得到json数据转换为一个json对象
JSONObject jsonObject = new JSONObject(data);
//获取"persons"的json对象,并将其转换为一个json数组
JSONArray array = jsonObject.getJSONArray("persons");
//通过循环获取数据,并放入list集合中
for (int i = 0;i<array.length();i++){
    int id = array.getJSONObject(i).getInt("id");
    String name = array.getJSONObject(i).getString("name");
    int age = array.getJSONObject(i).getInt("age");
    Person person = new Person(id, name, age);
    list.add(person);
}
return list;
登入後複製

以上是JsonObject是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板