我正在使用jquery datatable
处理wiki rest service
插件。我坚持,转换字符串结构如下
[{"name":"sEcho","value":1},{"name":"iColumns","value":5}]
进入对象的地图。 喜欢::
{"sEcho"=1, "iColumns"=5, "bSearchable_4"=true, "sSearch_3"="", "bRegex_3"=false, "mDataProp_3"=3, "sSearch_1"="", "bSortable_0"=true, "bRegex_1"=false}
问题是,有没有通用的方法或库可以做?
我尝试了休息 -
queryJson = queryJson.replace("[", "");
queryJson = queryJson.replace("]", "");
String[] params = queryJson.split("},");
Map<String, Object> paramMap = new HashMap<String, Object>();
for(int i=0;i<params.length-1;i++){
String[] curObj = params[i].split(":");
String[] keyObj = curObj[1].split(",");
paramMap.put(keyObj[0], curObj[2]);
}
获取输出。但我认为可能有更好的方法。 请建议我使用任何库或通用方法来执行此操作。 谢谢
答案 0 :(得分:0)
看到这一点,希望这对你有用 -
import java.util.HashMap;
import java.util.Map;
import com.google.gson.Gson;
public class Stack {
public static void main(String[] args) {
String jsonResponse = "[{\"name\":\"sEcho\",\"value\":1},{\"name\":\"iColumns\",\"value\":5}]";
Gson gson = new Gson();
//Parse json into a JsonResponseData object.
JsonResponseData[] jsonResponseData = gson.fromJson(jsonResponse, JsonResponseData[].class);
Map<String, Object> paramMap = new HashMap<String, Object>();
for(JsonResponseData data : jsonResponseData){
paramMap.put(data.getName(), data.getValue());
}
System.out.println(paramMap);
}
}
public class JsonResponseData {
private String name;
private Object value;
public JsonResponseData(String name, Object value) {
super();
this.name = name;
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
}
}
答案 1 :(得分:0)
使用 JSONObject 这样的东西。
HashMap<String, String> paramMap = new HashMap<String, String>();
for (int i = 0; i < params.length(); i++) {
JSONObject jObj = params.optJSONObject(i);
Iterator it = jObj.keys();
while (it.hasNext()) {
String n = it.next();
paramMap.put(n, jObj.getString(n));
}
}