Ich versuche, ein JSON in meiner Android App zu analysieren, erhalte ich Json richtig, aber wenn ich versuche, es zu analysieren scheint es nicht gut zu parsen!Json Objekt ist nicht in Android Analysieren
ist dies die json Ich erhalte:
"GetAdResult": {
"Action": null,
"ActionValue": null,
"BgColor": "blue",
"CampId": 19,
"CampType": "cpm",
"ClickAddress": null,
"EndAnimation": null,
"ExplainText": "",
"ImageType": null,
"ImageUrlBanner": null,
"ImageUrlLargeBanner": null,
"ImageUrlMediumRectangle": null,
"ImageUrlFullBanner": null,
"ImageUrlLeaderBoard": null,
"LogoUrl": "",
"MainText": "",
"PackageName": "",
"ReplaceText": "",
"StartAnimation": null,
"VideoUrl": null,
"type":"ad"
"atag":null,
"message":"success",
"pixel":null,
"script":null,
"token":null
}
und das ist, wie ich es bin versucht zu analysieren:
public class JsonObjectSend
{
private static final String TAG_action = "Action";
private static final String TAG_acValue = "ActionValue";
private static final String TAG_bg = "BgColor";
private static final String TAG_id = "CampId";
private static final String TAG_ctype = "CampType";
private static final String TAG_adr = "ClickAddress";
private static final String TAG_endAnim = "EndAnimation";
private static final String TAG_expText = "ExplainText";
private static final String TAG_imType = "ImageType";
private static final String TAG_imgUBanner = "ImageUrlBanner";
private static final String TAG_imgULBanner = "ImageUrlLargBanner";
private static final String TAG_imgUMRect = "ImageUrlMediumRectange";
private static final String TAG_imgUFBanner = "ImageUrlFullBanner";
private static final String TAG_imgULeadBrd = "ImageUrlLeaderBoard";
private static final String TAG_logoU = "LogoUrl";
private static final String TAG_mainText = "MainText";
private static final String TAG_packName = "PackageName";
private static final String TAG_repText = "ReplaceText";
private static final String TAG_startAnim = "StartAnimation";
private static final String TAG_videoU = "VideoUrl";
private static final String TAG_type = "type";
private static final String TAG_atag = "atag";
private static final String TAG_msg = "message";
private static final String TAG_pix = "pixel";
private static final String TAG_scrpt = "script";
private static final String TAG_tkn = "token";
public void sendobj()
{
JSONObject root = new JSONObject();
JSONObject reqBody = new JSONObject();
try {
reqBody.put("DeviceId", "sdasda");
reqBody.put("AppId", "ECC7BCE40126408386BCFCF8AB9187E7");
reqBody.put("AdType", "text");
reqBody.put("Location", "35.7209331,51.472983");
reqBody.put("UserOperator", "Irancell");
reqBody.put("Ip", "127.0.0.1");
reqBody.put("NetworkType", "3G");
reqBody.put("DeviceType", "Android");
reqBody.put("DeviceBrand", "Samsung");
reqBody.put("Width", "0");
reqBody.put("Height", "0");
reqBody.put("TestMode", "true");
root.put("request", reqBody);
}
catch (JSONException e)
{
e.printStackTrace();
}
String tag_string_req = "Send_Object";
JsonObjectRequest Req = new JsonObjectRequest(Request.Method.POST, AppConfig.API_URL, root, new Response.Listener<JSONObject>()
{
@Override
public void onResponse(JSONObject response)
{
try
{
JSONObject jObj = response;
JSONObject GetAdResult = jObj.getJSONObject("GetAdResult");
Log.d("GetAdResult", GetAdResult.toString());
String action = GetAdResult.getString(TAG_action);
String actionvalue = GetAdResult.getString(TAG_acValue);
String bg = GetAdResult.getString(TAG_bg);
String campid = GetAdResult.getString(TAG_id);
String camptype = GetAdResult.getString(TAG_ctype);
String clickadr = GetAdResult.getString(TAG_adr);
String endanim = GetAdResult.getString(TAG_endAnim);
String exptext = GetAdResult.getString(TAG_expText);
String imgtype = GetAdResult.getString(TAG_imType);
String imgurlbanner = GetAdResult.getString(TAG_imgUBanner);
String imgurllargebanner = GetAdResult.getString(TAG_imgULBanner);
String imgurlmedrectangle = GetAdResult.getString(TAG_imgUMRect);
String imgurlfullbanner = GetAdResult.getString(TAG_imgUFBanner);
String imgurlleaderboard = GetAdResult.getString(TAG_imgULeadBrd);
String logourl = GetAdResult.getString(TAG_logoU);
String maintext = GetAdResult.getString(TAG_mainText);
String packagename = GetAdResult.getString(TAG_packName);
String replacetext = GetAdResult.getString(TAG_repText);
String startenim = GetAdResult.getString(TAG_startAnim);
String videourl = GetAdResult.getString(TAG_videoU);
String type = GetAdResult.getString(TAG_type);
String atag = GetAdResult.getString(TAG_atag);
String msg = GetAdResult.getString(TAG_msg);
String pixel = GetAdResult.getString(TAG_pix);
String script = GetAdResult.getString(TAG_scrpt);
String token = GetAdResult.getString(TAG_tkn);
Log.d("hg3uewygrhefkj","ufdjklc");
Log.d("action", action);
Log.d("actionvalue",actionvalue);
Log.d("Back",bg);
/*
String errorMsg = jObj.getString("error_msg");
Log.d("Debug", errorMsg);
}*/
}
catch (JSONException e)
{
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("error", "Error");
Log.i("onErrorResponse", error.toString());
NetworkResponse response = error.networkResponse;
if (error instanceof ServerError && response != null) {
try {
String res = new String(response.data, HttpHeaderParser.parseCharset(response.headers));
// Now you can use any deserializer to make sense of data
JSONObject jsonbody = new JSONObject(res);
} catch (UnsupportedEncodingException e1) {
// Couldn't properly decode data to string
e1.printStackTrace();
} catch (JSONException e2) {
// returned data is not JSONObject?
e2.printStackTrace();
}
}
}
});
// Adding request to request queue
AppController.getInstance().addToRequestQueue(Req, tag_string_req);
}
}//class end
aber wenn ich versuche es die Saiten Log.d ist nichts in meinem logcat. Wie sonst soll ich so etwas tun?
Zuerst adResult nicht groß schreiben, es ist ein Objekt, keine Klasse. –
und zweitens? @ JonathanJeffrey – Neshat
Ich glaube, dass Sie jObj.getJSONObject() überhaupt nicht aufrufen müssen, weil Sie alle Daten auf der obersten Ebene setzen –