ホームページ  >  記事  >  Java  >  JavaでJSON-lib APIを使用してMapをJSONオブジェクトに変換するにはどうすればよいですか?

JavaでJSON-lib APIを使用してMapをJSONオブジェクトに変換するにはどうすればよいですか?

WBOY
WBOY転載
2023-08-29 16:37:02832ブラウズ

如何使用Java中的JSON-lib API将Map转换为JSON对象?

JSONObject名前/値ペアの順序なしコレクションであり、Map はマッピング キーです。オブジェクトから値へ。マップには 重複した keys を含めることはできず、各キーは最大 1 つの値にマップできます。 JSON-lib ライブラリを使用して、マップを JSON 形式で serialize および deserialize する必要があります。最初に、POJO クラスを作成し、そのインスタンスをパラメータとして Map クラスの put() メソッドに渡し、最後にこのマップ インスタンスを accumulateAll JSONObject メソッドに追加します。 。

Syntax

public void accumulateAll(Map map)

次の例では、Map を JSON オブジェクトに変換できます。

import java.util.*;
import net.sf.json.JSONObject;

public class ConvertMapToJSONObjectTest {
   public static void main(String[] args)throws Exception {
      JSONObject jsonObject = new JSONObject();
      Map<Integer, Employee> employees = new HashMap<Integer, Employee>();

      employees.put(1, new Employee("Adithya", "Jai", 30));
      employees.put(2, new Employee("Vamsi", "Krishna", 28));
      employees.put(3, new Employee("Chaitanya", "Sai", 30));

      jsonObject.accumulateAll(employees);
      System.out.println(jsonObject.toString(3)); // pretty print JSON
   }
   public static class Employee {
      private String firstName, lastName;
      private int age;
      public Employee(String firstName, String lastName, int age) {
         super();
         this.firstName = firstName;
         this.lastName = lastName;
         this.age = age;
      }
      public String getFirstName() {
         return firstName;
      }
      public String getLastName() {
         return lastName;
      }
      public int getAge() {
         return age;
      }
   }
}

出力

{
 "1": {
 "firstName": "Adithya",
 "lastName": "Jai",
 "age": 30
 },
 "2": {
 "firstName": "Vamsi",
 "lastName": "Krishna",
 "age": 28
 },
 "3": {
 "firstName": "Chaitanya",
 "lastName": "Sai",
 "age": 30
 }
}

以上がJavaでJSON-lib APIを使用してMapをJSONオブジェクトに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。