Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 解析只包含一个巨大JsonObject(Gson)的JsonObject的最佳方法是什么_Android_Json_Parsing_Gson - Fatal编程技术网

Android 解析只包含一个巨大JsonObject(Gson)的JsonObject的最佳方法是什么

Android 解析只包含一个巨大JsonObject(Gson)的JsonObject的最佳方法是什么,android,json,parsing,gson,Android,Json,Parsing,Gson,我有一个这种类型的Json: { "4f958ef28ecd651095af6ab6": { enormous JsonObject } } “4f958ef28ecd651095af6ab6”每次都不同(但我知道它是什么,因为它是api调用的一个参数),它对应于以下对象的id。我有一个Gson配置的模型来解析巨大的JsonObject 我的问题是:简单使用是否有效果 new JSONObject(jsonresponse).getJSONObject("4f958ef28ecd65

我有一个这种类型的Json:

{
"4f958ef28ecd651095af6ab6": {
     enormous JsonObject
}
}
“4f958ef28ecd651095af6ab6”每次都不同(但我知道它是什么,因为它是api调用的一个参数),它对应于以下对象的id。我有一个Gson配置的模型来解析巨大的JsonObject

我的问题是:简单使用是否有效果

new JSONObject(jsonresponse).getJSONObject("4f958ef28ecd651095af6ab6")
然后从那里用Gson解析? 有没有更好的办法

我想真正的问题是,“新JSONObject(String)”真正做什么


谢谢

我建议使用hybrid(native和gson),因为我不知道如何使用gson获得未知的jsonobject

你需要得到你的回答作为一个整体,然后为每一个。您可以尝试解析代码。请检查
JSONArray.getJSONObject(int-index)
方法。然后,我们可以使用GSON获得数据模型,以获得已知的属性


如果您可以发布完整的json数据,我们可以让它有机会一起解析。

您正在做的是:

  • 将所有Json字符串加载到手机内存中(内存问题+加载时间过长)
  • 您可以创建一个大的
    JSONObject
    (同样的问题),以便访问每个键
您编写的代码很少,但这不是最有效的解决方案

要最小化内存影响并加快对象创建的操作,可以在中使用Gson

通过直接读取输入流,可以避免加载太多数据,并且可以直接开始逐块填充对象


关于
JSONObject
,它将主要检查json字符串是否正确(或者它将抛出
JsonException
),当您搜索键及其值时,它将允许您查看对象。

这基本上是整个JSONObject,我想我不需要使用JSONArray。我发布的解决方案工作得很好,但我想知道我是否可以做得更好。如果您不知道id名称“4f958ef28ecd651095af6ab6”,您介意获取JSONObject吗?我有id(基本上,这个json是我使用此id调用Web服务时得到的响应),对不起,我应该更清楚。谢谢,这就是我要找的。它将是流模式