Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 Jackson 라이브러리를 사용하여 JSON을 Map으로/에서 변환하시겠습니까?


JSON Jackson은 Java용 라이브러리이며 매우 강력한 데이터 바인딩 기능을 가지고 있으며 사용자 정의 Java 개체를 JSON으로 직렬화하고 JSON을 다시 Java 개체로 역직렬화하는 프레임워크를 제공합니다. 변환할 수 있습니다. JSON 에서/에서 지도 readValue() 사용 및 writeValueAsString() com.fasterxml.jackson.databind.ObjectMapper의 메소드 수업.

JSON에서 매핑

구문

public <T> T readValue(String content, TypeReference valueTypeRef) throws IOException, JsonParseException, JsonMappingException

예시

import java.io.*;
import java.util.*;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.core.type.TypeReference;
public class ConvertJSONToMapTest {
   public static void main(String args[]) {
      try {
         ObjectMapper mapper = new ObjectMapper();
         String jsonString = "{\"Name\":\"Raja\", \"Technology\":\"Java\"}";
         Map<String, Object> jsonMap = new HashMap<String, Object>();
         jsonMap = mapper.readValue(jsonString, new TypeReference<Map<String, String>>(){}); // converts JSON to Map
         System.out.println(jsonMap);
      } catch(IOException ie) {
         ie.printStackTrace();
      }
   }
}

출력

{Name=Raja, Technology=Java}


JSON에 매핑

구문

public String writeValueAsString(Object value) throws JsonProcessingException

예시

import java.io.*;
import java.util.*;
import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.databind.ObjectMapper;
public class ConvertMapToJSONTest {
   public static void main(String args[]) throws IOException {
      ObjectMapper mapper = new ObjectMapper();
      String jsonString = "";
      Map<String, Object> map = new HashMap<String, Object>();
      map.put("Raja", "Java Technology");
      map.put("Ravi", "Python Technology");
      map.put("Adithya", "Spark Technology");
      map.put("Vamsi", "Web Technology");
      jsonString = mapper.writeValueAsString(map); // converts Map to JSON
      System.out.println(map);
   }
}

출력

{"Raja":"Java Technology", "Vamsi":"Web Technology", "Ravi":"Python Technology", "Adithya":"Spark Technology"}