Articles of json

如何在Android中解析JSON对象

我在从JSON对象中提取值时遇到一些问题。 这是我的代码 try { JSONObject json = new JSONObject(result); JSONObject json2 = json.getJSONObject(“results”); test = json2.getString(“name”); } catch (JSONException e) { e.printStackTrace(); } test声明为String 。 当代码运行时,它显示为null 。 如果我在调试模式下将鼠标hover在json2 ,我可以看到对象中的所有值和名称。 我也试过了 test = json2.length(); 返回的test = 0 。 即使我将鼠标hover在json2对象上,我也可以读取对象中的值。 这是我将使用的JSON字符串的示例。 { “caller”:”getPoiById”, “results”: { “indexForPhone”:0, “indexForEmail”:”NULL”, “indexForHomePage”:”NULL”, “indexForComment”:”NULL”, “phone”:”05137-930 68″, “cleanPhone”:”0513793068″, “internetAccess”:”2″, “overnightStay”:”2″, “wasteDisposal”:”2″, “toilet”:”2″, “electricity”:”2″, […]

Retrofit2.0得到MalformedJsonException,而json似乎正确吗?

我正在使用改装:2.0.0-beta4为我的Android应用程序。 我尝试添加用户使用Retrofit,用户在数据库中正确创建,但是我收到以下错误: 03-14 06:04:27.731 30572-30600/com.lehuo.lehuoandroid D/OkHttp: CALLING POST SP_User_CreateUser….your new user_id:48 {“data”:{“user_id”:”48″,”nickname”:null,”password”:null,”status”:null},”status”:1,”msg”:”OK”} 03-14 06:04:27.731 30572-30600/com.lehuo.lehuoandroid D/OkHttp: <– END HTTP (147-byte body) 03-14 06:04:27.732 30572-30600/com.lehuo.lehuoandroid E/My Jobs: error while executing job com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 1 path $ at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1573) at com.google.gson.stream.JsonReader.checkLenient(JsonReader.java:1423) at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:587) at com.google.gson.stream.JsonReader.peek(JsonReader.java:429) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:202) at […]

jackson JsonParseException:无效的UTF-8中间字节

当jackson引擎尝试解析来自服务器的json响应时,会发生此错误。 我使用Spring Android来串行/反序列化json中的对象。 此问题似乎与默认编码UTF-8有关。 有人知道如何告诉引擎它应该期待与UTF-8不同的东西,如UTF-16吗? HttpHeaders requestHeaders = createSomeHeader(); RestTemplate restTemplate = new RestTemplate(); HttpEntity requestEntity = new HttpEntity(requestHeaders); String url = “someurl” ResponseEntity arrayResponseEntity = restTemplate.exchange(url, HttpMethod.GET, requestEntity, MyObject[].class); 错误日志: Caused by: org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: Invalid UTF-8 middle byte 0x20 at [Source: org.apache.http.conn.EofSensorInputStream@44d397b0; line: 92, column: 42]; nested exception is org.codehaus.jackson.JsonParseException: Invalid […]

从HttpResponse得到json

HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(“http://my.server:8080/android/service.php”); List nameValuePairs = new ArrayList(2); nameValuePairs.add(new BasicNameValuePair(“action”, “getjson”)); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = httpclient.execute(httppost); service.php生成一个json字符串。 我如何从我的response获取它? 顺便说一句, 我已经把GSON库包括GSON ,我可以使用它中的任何方法吗? 类似于这个的解决方案看起来非常难看,imo: 从httpresponse android处理json的最佳方式 有更好的方法,对吧? 任何帮助表示赞赏,谢谢 更新: String json = EntityUtils.toString(response.getEntity()); 似乎可以做到这一点。 只有一个小问题:字符串用括号[]包装。 我应该手动删除它们吗? 它们是由php生成的:s json_encode()

使用Volley发送post请求并以PHP格式接收

我试图在我的项目中使用volley来处理我的所有HTTP请求,因为据我所知它是最有效的。 所以我开始通过AndroidHive教程学习排球。 我的第一个GET请求成功了。 然后我转到POST请求,但我失败了。 我在Stack Overflow上看到很多人在将截击请求与PHP结合起来时遇到了问题。 我相信我们无法使用$_POST[“”]的常规方式访问它,因为齐射将JSON对象发送到我们指定的URL。 我尝试了许多解决方案,但没有成功。 我想应该有一个简单而标准的方法来使用PHP的凌空。 所以我想知道在我的PHP代码中接收volley发送的json对象需要做什么。 还有我如何检查凌空是否真的发送JSON对象? 我的凌空代码发送简单的post请求: JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.POST, url, null, new Response.Listener() { @Override public void onResponse(JSONObject response) { Log.d(TAG, response.toString()); pDialog.hide(); } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { VolleyLog.d(TAG, “Error: ” + error.getMessage()); pDialog.hide(); } }) { @Override protected Map getParams() […]

GCM错误= MissingRegistration通过JSON发送消息

我正在通过Fiddler测试推送GCM 头: User-Agent: Fiddler Authorization: key=AIzaSyAkXfcuLLCZ-5n18wwO6XeJ13g-z9ja Host: android.googleapis.com Content-Length: 286 身体: {“registration_ids”:[“APA91bHyn8YHcH_vSuOo7_A0PMgF5SU1K0FebOFGKXYTqpN5x4eD0tVBvzQLn749TVcczN5gSjB1wqf5AzYfxFI_qskA1Nzipf-9MfdEom1PI1vkFqKIg9B8vZvPLOLozE7jaRzELuyDzpFRbO3Xh5lT-KDA”],”collapse_key”:”8b990f5a-78fc-4bad-b242-ffc740a750fb”,”data”:{“message”:”message to device”}} 我有一个错误 Error=MissingRegistration 我的问题在哪里? 所有ID都是正确的。

改造2:从响应机构获取JSON

我想使用改装2从我的api获取字符串json,使用改装1获取此json时我没有问题,但使用retrofit 2为我返回null 。 这就是我的json的样子 {“id”:1,”Username”:”admin”,”Level”:”Administrator”} 这是我的API @FormUrlEncoded @POST(“/api/level”) Call checkLevel(@Field(“id”) int id); 这就是我的代码的样子 Retrofit retrofit = new Retrofit.Builder() .baseUrl(Config.BASE_URL) .addConverterFactory(GsonConverterFactory.create()) .build(); Api api = retrofit.create(Api.class); Call call = api.checkLevel(1); call.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { JsonObject post = new JsonObject().get(response.body().toString()).getAsJsonObject(); if (post.get(“Level”).getAsString().contains(“Administrator”)) { } } @Override public void onFailure(Call call, […]

Android JSONObject与GSON

我无法理解JSONObject和GSON之间在Android中解析JSON字符串的区别。 有人可以解释一下吗?

在为Google Analytics生成配置文件时,无法选择其他Google Analytics帐户

我有两个Google Analytics帐户A和B,每个帐户都有自己的属性,我尝试为其生成配置文件(更具体地说,是google-services.json文件),以便在我的Android应用中使用Google Analytics。 我正在为您的应用向导使用启用Google服务 。 当您进入“ 选择和配置服务”步骤时,每次运行此向导时, 都应允许您从关联的选择框中选择Google Analytics帐户和Google Analytics媒体资源。 问题是选择Google Analytics帐户的选择框仅出现在此向导的第一次运行中,之后成为无法修改的预填充字段。 这意味着如果我使用帐户A为属性生成配置文件,我无法使用帐户B为属性生成另一个配置文件,因为向导会使用帐户A预填充不可修改的文本框,并且仅显示帐户A的属性在下一个选择框中。 如何为我无法切换到的Google Analytics帐户下的属性生成google-services.json配置文件? 我有这两个帐户的管理员权限,所以这不是问题。 一旦应用程序向公众发布,Google Analytics就必须使用配置文件(如此处所述)。 此处已针对Android和此处针对iOS (这两个平台使用相同的向导启用Google Analytics服务)提出了类似的未解决问题。

Android上的JSON – 序列化

有没有在序列化中使用JSON的Android的简单示例? 谢谢