5

jsonに問題があります。私のJsonを次のように見せたい:

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

これは私の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);

私のjsonが私の例のように見えるかどうかを確認するにはどうすればよいですか?jsonがWebサービスにどのように投稿されているかを確認したいと思います。

4

3 に答える 3

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
}
于 2012-12-19T08:25:06.913 に答える
1

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

于 2012-12-19T08:23:37.610 に答える
0

私はあなたのfinaljsonobjが構造を持っていると思います:

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

問題は、次の構造を持つ必要がある場合のJSONArrayです。

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

jArrayParamを削除して、次のようにします。

finaljsonobj.put("data", jsonObject);
于 2012-12-19T08:20:11.730 に答える