Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

วิธีแปลง Java Map เป็น JSON

มีหลายวิธีในการแปลง Java Map เป็น JSON เป็นเรื่องปกติที่จะแปลง Java Arrays และ Maps เป็น JSON และในทางกลับกัน

ในโพสต์นี้ เราจะดูตัวอย่างที่แตกต่างกัน 3 ตัวอย่างในการแปลง Java Map เป็น JSON เราจะใช้ห้องสมุด Jackson, Gson และ org.json

จาวาแมปไปยัง JSON โดยใช้ Jackson

ตัวอย่างต่อไปนี้ใช้ Jackson Core และ Jackson Binding เพื่อแปลง Java Map เป็น JSON

ในการใช้ไลบรารีของ Jackson อันดับแรกเราต้องเพิ่มลงใน pom.xml ไฟล์:

<dependencies>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
         <artifactId>jackson-core</artifactId>
        <version>2.9.8</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.9.8</version>
    </dependency>
</dependencies>

แล้ว:

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.Test;

import java.util.HashMap;
import java.util.Map;

public class ConvertJavaMapToJson {

    @Test
    public void convertMapToJson() {
        Map<String, String> elements = new HashMap();
        elements.put("Key1", "Value1");
        elements.put("Key2", "Value2");
        elements.put("Key3", "Value3");

        ObjectMapper objectMapper = new ObjectMapper();

        try {
            String json = objectMapper.writeValueAsString(elements);
            System.out.println(json);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
    }
}

เอาท์พุต:

{"Key2":"Value2","Key1":"Value1","Key3":"Value3"}

ดังที่เห็นได้จากผลลัพธ์ ลำดับขององค์ประกอบใน JSON ไม่เหมือนกับลำดับที่เราเพิ่มลงในแผนที่

เพื่อรักษาลำดับ เราต้องใช้ SortedMap แทน

เช่น

SortedMap<String, String> elements = new TreeMap();

เอาท์พุต:

{"Key1":"Value1","Key2":"Value2","Key3":"Value3"}

ที่เกี่ยวข้อง:

  • วิธีแยก JSON ใน Java
  • วิธีเข้ารหัสและถอดรหัส JSON
  • วิธีการแปลง Java Object เป็น JSON

จาวาแมปไปยัง JSON โดยใช้ Gson

ตัวอย่างต่อไปนี้ใช้ไลบรารี Gson เพื่อแปลง Java Map เป็น JSON แต่ก่อนอื่น เราต้องเพิ่ม Gson เป็นการพึ่งพา pom.xml ไฟล์.

<dependencies>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.5</version>
    </dependency>
</dependencies>

แล้ว:

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import org.junit.jupiter.api.Test;

import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.SortedMap;
import java.util.TreeMap;

public class ConvertJavaMapToJson {

    @Test
    public void convertMapToJson() {
        SortedMap<String, String> elements = new TreeMap();
        elements.put("Key1", "Value1");
        elements.put("Key2", "Value2");
        elements.put("Key3", "Value3");

        Gson gson = new Gson();
        Type gsonType = new TypeToken<HashMap>(){}.getType();
        String gsonString = gson.toJson(elements,gsonType);
        System.out.println(gsonString);
    }
}

เอาท์พุต:

{"Key1":"Value1","Key2":"Value2","Key3":"Value3"}

จาวาแมปไปยัง JSON โดยใช้ org.json

ตัวอย่างต่อไปนี้ใช้ไลบรารี org.json เพื่อแปลง Java Map เป็น JSON แต่ก่อนอื่น เราต้องเพิ่ม org.json เป็นการพึ่งพา pom.xml ไฟล์.

<dependencies>
    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20180813</version>
    </dependency>
</dependencies>

แล้ว:

import org.json.JSONObject;
import org.junit.jupiter.api.Test;

import java.util.HashMap;
import java.util.Map;

public class ConvertJavaMapToJson {

    @Test
    public void convertMapToJson() {
        Map<String, String> elements = new HashMap<>();
        elements.put("Key1", "Value1");
        elements.put("Key2", "Value2");
        elements.put("Key3", "Value3");

        JSONObject json = new JSONObject(elements);

        System.out.println(json);
    }
}

เอาท์พุต:

{"Key2":"Value2","Key1":"Value1","Key3":"Value3"}