2012-12-19 35 views
5

Tôi gặp vấn đề với json. Tôi muốn Json của tôi trông giống như:Kiểm tra Json trong một dịch vụ web

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

Đây là bài viết của tôi để dịch vụ web:

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

Làm thế nào tôi có thể kiểm tra nếu json của tôi trông giống như trong ví dụ của tôi? Tôi muốn kiểm tra cách json của tôi được đăng lên webservice.

Trả lời

2

thử như:

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

này sẽ tạo của bạn Đối tượng JSON dưới dạng:

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

Tôi nghĩ rằng finaljsonobj của bạn có cấu trúc:

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

Vấn đề là JSONArray, nếu bạn wnat có cấu trúc của:

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

Chỉ cần xóa jArrayParam và làm:

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

U có thể tạo lớp trình bao bọc cho JSONObject của bạn:

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

Chuẩn bị đối tượng JSON của bạn và xem trong debug nó trông như thế:

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

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

liên kết để tải về thư viện Gson - http://code.google.com/p/google-gson/downloads/list

Các vấn đề liên quan