ホームページ >ウェブフロントエンド >jsチュートリアル >JsonObjectとは
#このチュートリアルの動作環境: Windows7 システム、Java8 バージョン、DELL G3 コンピューター。JSONObject は、JSON 形式のデータ構造、つまり「キーと値」の構造として理解できるデータ構造です。その形式は "{"key1":value1,"key2", value2.... }"; JSONObject に要素を追加するには、put メソッドと get メソッドを使用できます。
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. 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 にはゲッター メソッドが必要です。そうでないと、保存されたデータにアクセスできません。
基本型の解析では、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 サイトの他の関連記事を参照してください。