JsonObjectとは

(*-*)浩
(*-*)浩オリジナル
2019-05-18 19:56:2111738ブラウズ

JSONObject は、JSON 形式のデータ構造、つまり「キーと値」の構造として理解できるデータ構造です。その形式は "{"key1":value1,"key2", value2.... }"; JSONObject に要素を追加するには、put メソッドと get メソッドを使用できます。

JsonObjectとは

#このチュートリアルの動作環境: Windows7 システム、Java8 バージョン、DELL G3 コンピューター。


JSONObject は、JSON 形式のデータ構造 (キーと値の構造) として理解できるデータ構造であり、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) を使用して要素を追加できます。これら 2 つのメソッドのいずれかを選択できます。また、JsonObject は重要なデータ送信オブジェクトです。実務では欠かせないもの。

1. 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;

Build 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 にはゲッター メソッドが必要です。そうでないと、保存されたデータにアクセスできません。

2. json の解析

json の解析には主に Number、boolean などの基本型と配列 Array が含まれます。

基本型の解析では、JSONObject オブジェクトの getXxx(key) メソッドを直接呼び出し、文字列を取得する場合は getString(key) を使用し、ブール値は getBoolean(key) になります。
配列を解析するには、JSONObject オブジェクトの getJSONArray(key) メソッドを通じて JSONArray オブジェクトを取得し、次に JSONArray オブジェクトの get(i) メソッドを呼び出して配列要素を取得する必要があります。ここで、i はインデックス値。

1. 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。