Json对象未在android中解析
我试图在我的android应用程序中解析json,我正确地接收到json,但当我尝试解析它时,它似乎并没有解析好 这是我收到的json:Json对象未在android中解析,android,json,jsonobject,Android,Json,Jsonobject,我试图在我的android应用程序中解析json,我正确地接收到json,但当我尝试解析它时,它似乎并没有解析好 这是我收到的json: "GetAdResult": { "Action": null, "ActionValue": null, "BgColor": "blue", "CampId": 19, "CampType": "cpm", "ClickAddress": null, "EndAnimation": null, "ExplainText": "", "ImageTyp
"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
}
这就是我试图解析它的方式:
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
公共类JsonObjectSend
{
私有静态最终字符串标记_action=“action”;
私有静态最终字符串标记\u acValue=“ActionValue”;
私有静态最终字符串标记\u bg=“BgColor”;
私有静态最终字符串标记\u id=“CampId”;
私有静态最终字符串标记\u ctype=“CampType”;
私有静态最终字符串标记\u adr=“ClickAddress”;
私有静态最终字符串标记_endAnim=“EndAnimation”;
私有静态最终字符串标记_expText=“ExplainText”;
私有静态最终字符串标记\u imType=“ImageType”;
私有静态最终字符串标记\u imgUBanner=“ImageUrlBanner”;
私有静态最终字符串标记_imgULBanner=“ImageUrlLargBanner”;
私有静态最终字符串标记\u imgUMRect=“ImageUrlMediumRectange”;
私有静态最终字符串标记\u imgUFBanner=“ImageUrlFullBanner”;
私有静态最终字符串标记\u imgULeadBrd=“ImageUrlLeadboard”;
私有静态最终字符串标记_logoU=“LogoUrl”;
私有静态最终字符串标记_mainText=“mainText”;
私有静态最终字符串标记_packName=“PackageName”;
私有静态最终字符串标记_repText=“ReplaceText”;
私有静态最终字符串标记\u startAnim=“StartAnimation”;
私有静态最终字符串标记\u videoU=“VideoUrl”;
私有静态最终字符串标记\u type=“type”;
私有静态最终字符串标记\u atag=“atag”;
私有静态最终字符串标记\u msg=“message”;
私有静态最终字符串标记_pix=“pixel”;
私有静态最终字符串标记_scrpt=“script”;
私有静态最终字符串标记\u tkn=“token”;
公共无效sendobj()
{
JSONObject root=新的JSONObject();
JSONObject reqBody=新的JSONObject();
试一试{
请求主体put(“设备ID”、“SDA”);
请求主体put(“AppId”、“ECC7BCE40126408386BF8AB9187E7”);
请求正文内容(“AdType”、“text”);
请求主体put(“位置”,“35.7209331,51.472983”);
请求主体put(“用户操作员”、“Irancell”);
要求主体投入(“Ip”、“127.0.0.1”);
请求主体put(“网络类型”、“3G”);
reqBody.put(“设备类型”、“安卓”);
reqBody.put(“设备品牌”、“三星”);
要求主体放置(“宽度”、“0”);
要求主体放置(“高度”、“0”);
请求主体put(“TestMode”、“true”);
root.put(“请求”,请求主体);
}
捕获(JSONException e)
{
e、 printStackTrace();
}
String tag\u String\u req=“发送对象”;
JsonObjectRequest Req=新的JsonObjectRequest(Request.Method.POST,AppConfig.API_URL,root,new Response.Listener()
{
@凌驾
公共void onResponse(JSONObject响应)
{
尝试
{
JSONObject jObj=响应;
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);
字符串campid=GetAdResult.getString(标记id);
String camptype=GetAdResult.getString(TAG_ctype);
String clickadr=GetAdResult.getString(TAG\u 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 imgurledrectangle=GetAdResult.getString(TAG_imgUMRect);
String imgurlfullbanner=GetAdResult.getString(TAG_imgUFBanner);
String imgurleaderboard=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\u videoU);
字符串类型=GetAdResult.getString(标记类型);
String atag=GetAdResult.getString(TAG_atag);
String msg=GetAdResult.getString(TAG_msg);
字符串像素=GetAdResult.getString(TAG_pix);
String script=GetAdResult.getString(TAG_scrpt);
字符串标记=GetAdResult.getString(标记\u tkn);
Log.d(“hg3uewygrhefkj”、“ufdjklc”);
日志d(“行动”,行动);
Log.d(“actionvalue”,actionvalue);
日志d(“背面”,背景);
/*
String errorMsg=jObj.getString(“error_msg”);
Log.d(“调试”,errorMsg);
}*/
}
捕获(JSONException e)
{
e、 printStackTrace();
}
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
Log.d(“错误”、“错误”);
Log.i(“onErrorResponse”,error.toString());
NetworkResponse=错误。NetworkResponse;
if(错误实例of ServerError&&response!=n
public String parseJSONForTranslation(String jsonString) {
try {
JSONObject object = (JSONObject) new JSONTokener(jsonString).nextValue();
return object.getJSONObject("GetAdResult").getString("BgColor");
}
catch (JSONException e) {
return null;
}
public String parseJSON(String jsonString) {
JSONObject object = new JSONObject(jsonString);
JSONObject adResultObj=object.optJSONObject("GetAdResult");
String bgColor=adResiltObj.optString("BgColor");
String campId=adResiltObj.optString("CampId");
} catch (Exception e) {
return null;
}