2012-12-19 14 views
5

json ile ilgili bir sorunum var. benim Json gibi görünmek istiyorum:Bir web servisindeki Json'u kontrol etme

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

Bu web servisine benim görev yerim:

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

nasıl json benim örnekteki gibi görünüyor olmadığını kontrol edebilir? Json'umun web servisine nasıl yazdığını kontrol etmek istiyorum.

cevap

2

olarak deneyin:

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())); 

bu yaratacak senin JSON nesnesi:

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

Ben senin finaljsonobj yapıya sahip olduğunu düşünüyorum:

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

sen yapısına sahip olunması wnat sorun, JSONArray geçerli:

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

Sadece silmek jArrayParam ve yapın:

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

JSONObject için sarıcı sınıf oluşturabilirsin:

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

nasıl göründüğünü hata ayıklama JSON nesnesi ve görünümü hazırlayın:

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

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

Linki GSON kütüphanesini indirmek için - http://code.google.com/p/google-gson/downloads/list

İlgili konular