Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.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
Java 无法解析JSON数据_Java_Android_Json - Fatal编程技术网

Java 无法解析JSON数据

Java 无法解析JSON数据,java,android,json,Java,Android,Json,我正在做一个android项目。我需要从服务器检索此JSON数据解析的帮助: {"item_name":["Navnita","Navnita","Navnita"],"username":["James","John","Jenny"],"review":["Its a relly nice restaurant for Vegetarians! :)","Cool!","Food is just great!"]} 我只想用“username”和他的“review”填充RecyclerVi

我正在做一个android项目。我需要从服务器检索此JSON数据解析的帮助:

{"item_name":["Navnita","Navnita","Navnita"],"username":["James","John","Jenny"],"review":["Its a relly nice restaurant for Vegetarians! :)","Cool!","Food is just great!"]}
我只想用
“username”
和他的
“review”
填充RecyclerView。 现在,我正在使用以下代码解析JSON数据并填充arrayList,arrayList反过来填充RecyclerView,但它给了我错误(下面的logcat):


直接将其写入for循环

String username=usernameJsonArray.getString(i);

您的内部数据不是
JsonObject
它只是字符串

直接将其写入for循环

String username=usernameJsonArray.getString(i);

您的内部数据不是
JsonObject
它只是字符串

您可以使用以下代码来检索数据

            JSONObject jObject = new JSONObject(result);
            JSONArray usernameJsonArray =  jObject.getJSONArray("username");
            JSONArray reviewJsonArray = jObject.getJSONArray("review");
            for(int i=0;i<usernameJsonArray.length();i++)
             {
                String username = usernameJsonArray.getString(i);
                String review = reviewJsonArray.getString(i);
                getReviewFeedItemsArrayList.add(new GetReviewFeedItems(username,review));
            }
JSONObject jObject=新的JSONObject(结果);
JSONArray usernameJsonArray=jObject.getJSONArray(“用户名”);
JSONArray reviewJsonArray=jObject.getJSONArray(“review”);

对于(inti=0;i您可以使用以下代码来检索数据

            JSONObject jObject = new JSONObject(result);
            JSONArray usernameJsonArray =  jObject.getJSONArray("username");
            JSONArray reviewJsonArray = jObject.getJSONArray("review");
            for(int i=0;i<usernameJsonArray.length();i++)
             {
                String username = usernameJsonArray.getString(i);
                String review = reviewJsonArray.getString(i);
                getReviewFeedItemsArrayList.add(new GetReviewFeedItems(username,review));
            }
JSONObject jObject=新的JSONObject(结果);
JSONArray usernameJsonArray=jObject.getJSONArray(“用户名”);
JSONArray reviewJsonArray=jObject.getJSONArray(“review”);

对于(inti=0;i,我认为您从http响应中得到的JSON格式的回声输出会带来额外的html垃圾

在将http响应转换为字符串后添加此代码。此代码将删除额外的html垃圾并输出json格式

jsonData = jsonData.substring(jsonData.indexOf("{\""), jsonData.lastIndexOf("\"}") + 2);
这里的“jsonData”是http响应中的字符串格式。
在此之后,请按照JSON解析的常规步骤进行操作。

我认为,您从http响应中获得的JSON格式输出会带来额外的html垃圾

在将http响应转换为字符串后添加此代码。此代码将删除额外的html垃圾并输出json格式

jsonData = jsonData.substring(jsonData.indexOf("{\""), jsonData.lastIndexOf("\"}") + 2);
这里的“jsonData”是http响应中的字符串格式。
之后,按照JSON解析的常规步骤进行操作。

我将使用GSON。首先将JSON转换为POJO类。然后使用GSON解析JSON数据:

Gson gson = new Gson();
PojoClass obj = gson.fromJson(jsonString, PojoClas.class);

我会使用GSON。首先将JSON转换为POJO类。然后使用GSON解析JSON数据:

Gson gson = new Gson();
PojoClass obj = gson.fromJson(jsonString, PojoClas.class);

您是否控制来自服务器的数据?对JSON进行类似于
{[“item”:“Nanvita”,“username”:“James”,“review”:“Best ever!”],[…],[…]的重组可能会有所帮助
。对于您的问题:看起来像@Ravi得到了它!您控制了来自服务器的数据吗?将JSON重组为类似
{[“项”:“Nanvita”,“用户名”:“James”,“review”:“Best ever!”],[…],[…],[…]}
。对于您的问题:看起来像@Ravi得到了它!