![](/img/trans.png)
[英]Java HttpServlet unable to receive any parameters from POST request made by client using OKHttp
[英]Parsing JSON from request parameters in a HttpServlet
我需要實現一個解析器,用於解析“ JSON字符串”中的某些值。 可以從請求參數訪問數據,如下所示:
String []條件= request.getParameterValues(“ criteria”);
條件包含以下字符串(每行代表一個字符串):
{"fieldName":"name","operator":"iContains","value":"a string"}
{"fieldName":"date","operator":"equals","value":"2013-02-26"}
{"fieldName":"amount","operator":"equals","value":2600}
我需要能夠通過fieldName從條件中獲取值。 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.
您將如何實現解析器?
您應該看看JSON in Java
中的JSON in Java
。
還有一個名為google-gson
,它提供了一些功能,例如定義用於串行化的類型適配器和用於自定義類型的反序列化。 您可以在此處找到用例。
好了,您可以使用無數個可用的Json庫輕松地將String解析為Java中的對象。 我的最愛是Google-gson
繼承人如何使用Google JSON
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 + "]";
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.