2012-12-19 27 views
5

我有json的問題。 我希望我的JSON來的樣子:在Web服務中檢查Json

data={"phoneId":1,"token":"APA91bF2tN5g1TtULFE5tysRMAarygjX4w9hjTGCqT3SL-PwiMV6aqTtkV3lpqLkc7msVfEdTnyd_pJVFNMM_fjEbeVSuCjiNPVKx7p9sYC1DoWnuKUurt31E1yh2RDwl_oprfKxEF18PP6Q8dXHZe6FeflE3CIxBg","appId":5} 

這是我發佈到網絡服務:

JSONObject jsonObject = new JSONObject(); 
        jsonObject.put("token", regId); 
        jsonObject.put("appId", GlobalConfig.getAPPLICATION_ID()); 
        jsonObject.put("phoneId", 1); 

        JSONArray jArrayParam = new JSONArray(); 
        jArrayParam.put(jsonObject); 

        JSONObject finaljsonobj = new JSONObject(); 

        finaljsonobj.put("data", jArrayParam); 

       System.out.println(jsonObject.toString()); 
       List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(); 
       nameValuePair.add(new BasicNameValuePair("Token",jArrayParam.toString())); 

       HttpClient httpclient = new DefaultHttpClient(); 
       HttpPost httppost = new HttpPost(GlobalConfig.getSendEmail()); 
        httppost.addHeader("Authorization", "Basic " + Base64.encodeToString(
          (GlobalConfig.getAuthString()).getBytes(),Base64.NO_WRAP)); 
       httppost.setEntity(new UrlEncodedFormEntity(nameValuePair, HTTP.UTF_8)); 

       // Execute HTTP Post Request 
       HttpResponse response = httpclient.execute(httppost); 

我如何檢查我的JSON看起來像一個在我的例子嗎?我想檢查我的json如何發佈到webservice。

回答

2

嘗試爲:

JSONObject jsonObject = new JSONObject(); 
jsonObject.put("token", regId); 
jsonObject.put("appId", GlobalConfig.getAPPLICATION_ID()); 
jsonObject.put("phoneId", 1); 

System.out.println("data="+jsonObject.toString()); 
List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(); 
nameValuePair.add(new BasicNameValuePair("Token","data="+jsonObject.toString())); 

這將創建JSON對象爲:

data={ 
    "phoneId": 1, 
    "token": "token", 
    "appId": 5 
} 
0

我認爲你finaljsonobj具有結構:

{"data":[{"phoneId":1,"token":"APA91bF2tN5g1TtULFE5tysRMAarygjX4w9hjTGCqT3SL-PwiMV6aqTtkV3lpqLkc7msVfEdTnyd_pJVFNMM_fjEbeVSuCjiNPVKx7p9sYC1DoWnuKUurt31E1yh2RDwl_oprfKxEF18PP6Q8dXHZe6FeflE3CIxBg","appId":5}]} 

的問題是JSONArray,如果你wnat有結構:

{"data":{"phoneId":1,"token":"APA91bF2tN5g1TtULFE5tysRMAarygjX4w9hjTGCqT3SL-PwiMV6aqTtkV3lpqLkc7msVfEdTnyd_pJVFNMM_fjEbeVSuCjiNPVKx7p9sYC1DoWnuKUurt31E1yh2RDwl_oprfKxEF18PP6Q8dXHZe6FeflE3CIxBg","appId":5}} 

只要刪除jArrayParam做:

finaljsonobj.put("data", jsonObject); 
0

U可以爲您的JSONObject創建包裝類:

public class YourWrapperClassName{ 
    @SerializedName("phoneId") 
    private int phoneId; 
    @SerializedName("token") 
    private String token; 
    @SerializedName("appId") 
    private int appId; 
} 

準備好你的JSON對象,並查看調試它的外觀:

YourWrapperClassName testObj = new YourWrapperClassName(); 
// initialize testObj fields 

Gson gson = new Gson(); // import com.google.gson.Gson; 
String result = gson.toJson(testObj); // put breakpoint here 

下載鏈接GSON庫 - http://code.google.com/p/google-gson/downloads/list