2017-03-21 14 views
0

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

http://api.jquery.com/jquery.parsejson/はあなたの友人です! –

+0

ありがとう@リチャードハウス。しかし、私はサービスレベルで処理する必要があり、すべてのパラメータは 'jquery datatable'からあらかじめ定義されています。 –

+0

ああ、あなたのJavaの世界です。その話題に関する質問があります。 http://stackoverflow.com/questions/2591098/how-to-parse-json-in-java Javaを実行してから10年以上経ちました。 –

答えて

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; 
    } 

} 
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)); 
    } 
} 
関連する問題