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

จะแยกวิเคราะห์ JSON โดยไม่มีคีย์ซ้ำโดยใช้ Gson ใน Java ได้อย่างไร


A Gson เป็นไลบรารี JSON สำหรับ Java ซึ่งสร้างโดย Google โดยใช้ Gson เราสามารถสร้าง JSON และแปลง JSON เป็นวัตถุ Java เราสามารถสร้างอินสแตนซ์ Gson ได้โดยการสร้าง GsonBuilder อินสแตนซ์และการโทรด้วย create() กระบวนการ. เราสามารถแยกวิเคราะห์ JSON โดยไม่ต้องใช้คีย์ซ้ำโดยใช้ TypeToken ระดับ. หากเราต้องการสร้างประเภทตัวอักษรสำหรับ แผนที่ เราสามารถสร้าง คลาสภายในที่ไม่ระบุตัวตนที่ว่างเปล่า หากเราพยายามแทรกคีย์ที่ซ้ำกัน มันจะสร้างข้อผิดพลาดขณะรันไทม์ "ข้อยกเว้นในเธรด "main" com.google.gson.JsonSyntaxException:คีย์ที่ซ้ำกัน

ไวยากรณ์

public class TypeToken<T> extends Object

ตัวอย่าง

import java.lang.reflect.Type;
import java.util.Map;
import com.google.gson.*;
import com.google.gson.reflect.TypeToken;
public class JsonWithoutDuplicateKeysTest {
   public static void main(String args[]) throws Exception {
      String json = "{\"123\":\"abc\", \"124\":\"def\", \"125\":\"ghi\"}";
      Gson gson = new GsonBuilder().setPrettyPrinting().create();
      Type mapType = new TypeToken<Map<Integer, String>>() {}.getType();
      Map<String, String> map = gson.fromJson(json, mapType);
      System.out.println(map);
   }
}

ผลลัพธ์

{123=abc, 124=def, 125=ghi}