2013-02-26 5 views
0

"JSON 문자열"의 일부 값을 구문 분석하는 파서를 구현해야합니다. 데이터는 다음과 같이 요청 매개 변수에서 액세스 할 수 있습니다.HttpServlet의 요청 매개 변수에서 JSON 구문 분석

String [] criterion = request.getParameterValues ​​("criteria");

기준은 다음과 같은 문자열을 (각 행은 문자열을 나타냄)이 포함되어

내가 fieldName에 의해 기준의 값을 얻을 수 있어야합니다
{"fieldName":"name","operator":"iContains","value":"a string"} 
{"fieldName":"date","operator":"equals","value":"2013-02-26"} 
{"fieldName":"amount","operator":"equals","value":2600} 

. API는 다음과 같을 수 있습니다.

String name = CoolParserUtil.parseParam(criterion, "name", String.class); 
// "a string" 
Date date = CoolParserUtil.parseParam(criterion, "date", Date.class); 
// date representing 2013-02-26 
// etc. etc. 

파서를 어떻게 구현합니까?

+1

는 http://www.json.org/javadoc/org/json/JSONObject.html에서보세요 – BobTheBuilder

답변

2

너는 JSON in Java을 봐야한다.

google-gson이라는 또 다른 이름으로, 사용자 정의 유형에 대한 직렬화 및 비 직렬화를위한 유형 어댑터 정의와 같은 기능을 제공합니다. 유스 케이스 here을 찾을 수 있습니다.

1

글쎄, 사용 가능한 무수히 많은 Json 라이브러리 중 하나를 사용하여 Java의 String 객체를 쉽게 파싱 할 수 있습니다. 내 즐겨 찾기는 구글 JSON으로 당신이 그것을 할 Heres는 방법 google-gson

될 것은

import com.google.gson.Gson; 
public class GsonTutorial { 

    public static void main(String[] args) { 

String jsonMsg ="{\"fieldName\":\"name\",\"operator\":\"iContains\",\"value\":\"a string\"}"; 

     Gson gson = new Gson(); 
     Data data = (Data) gson.fromJson(jsonMsg, Data.class); 

     System.out.println(data); 
    } 

    class Data{ 
     private String fieldName; 
     private String operator; 
     private String value; 
     public String getFieldName() { 
      return fieldName; 
     } 
     public void setFieldName(String fieldName) { 
      this.fieldName = fieldName; 
     } 
     public String getOperator() { 
      return operator; 
     } 
     public void setOperator(String operator) { 
      this.operator = operator; 
     } 
     public String getValue() { 
      return value; 
     } 
     public void setValue(String value) { 
      this.value = value; 
     } 
     public String toString() { 
      return "Data [fieldName=" + fieldName + ", operator=" + operator 
        + ", value=" + value + "]"; 
     } 



    } 

}