JSON.simple - โรงงานคอนเทนเนอร์

ContainerFactory สามารถใช้เพื่อสร้างคอนเทนเนอร์แบบกำหนดเองสำหรับอ็อบเจ็กต์ / อาร์เรย์ JSON ที่แยกวิเคราะห์ ก่อนอื่นเราต้องสร้างอ็อบเจ็กต์ ContainerFactory จากนั้นใช้ในการแยกวิเคราะห์วิธีของ JSONParser เพื่อรับอ็อบเจ็กต์ที่ต้องการ ดูตัวอย่างด้านล่าง -

ตัวอย่าง

import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import org.json.simple.parser.ContainerFactory;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

class JsonDemo {
   public static void main(String[] args) {
      JSONParser parser = new JSONParser();
      String text =  "{\"first\": 123, \"second\": [4, 5, 6], \"third\": 789}";
      ContainerFactory containerFactory = new ContainerFactory() {
         @Override
         public Map createObjectContainer() {
            return new LinkedHashMap<>();
         }
         @Override
         public List creatArrayContainer() {
            return new LinkedList<>();
         }
      };
      try {
         Map map = (Map)parser.parse(text, containerFactory);       
         map.forEach((k,v)->System.out.println("Key : " + k + " Value : " + v));
      } catch(ParseException pe) {
         System.out.println("position: " + pe.getPosition());
         System.out.println(pe);
      }
   }
}

เอาต์พุต

Key : first Value : 123
Key : second Value : [4, 5, 6]
Key : third Value : 789