java - 从 JSON 数组解析 JSON 对象

标签 java android arrays json

我目前正在开发一个应用程序,需要从未命名数组中解析 JSON 对象。
我只能设法解析名称如下的 JSON 数组:http://jsonparsing.parseapp.com/jsonData/moviesDemoItem.txt .

我用于上面代码的代码是

protected String doInBackground(String... params) {

        HttpURLConnection connection = null;
        BufferedReader reader = null;

        try {
            URL url = new URL(params[0]);
            connection = (HttpURLConnection) url.openConnection();
            connection.connect();

            InputStream stream = connection.getInputStream();
            reader = new BufferedReader(new InputStreamReader(stream));
            StringBuffer buffer = new StringBuffer();

            String line = "";
            while ((line = reader.readLine()) != null) {
                buffer.append(line);
            }


            String asd = buffer.toString();

           JSONObject parentObject = new JSONObject(asd);
           JSONArray parentArray = parentObject.getJSONArray("movies");
           JSONObject fObject = parentArray.getJSONObject(0);

            String movie = fObject.getString("movie");
            int year = fObject.getInt("year");

            return movie + year;

代码包含“movies”,它是数组名称。
我应该更改什么才能仅解析 JSON 数组中的对象,例如 https://restcountries.eu/rest/v1/all

最佳答案

您的国家/地区列表只是一个数组。不需要名字。

简单地替换

JSONObject parentObject = new JSONObject(asd);

JSONArray parentObject = new JSONArray(asd);

请参阅这篇文章,了解如何迭代该数组以解析其余对象。

How to parse JSON in Android

开始类似的事情

for (int i=0; i < parentObject.length(); i++) {

或者,Volley 的 JsonArrayRequest 会很有用,或者如果您不想自己手动解析 JSON 数据,那么了解 Retrofit+Gson 会更好。

关于java - 从 JSON 数组解析 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40309694/

相关文章:

c - snprintf() 在内部调用 memset() 或类似的吗?

javascript - JS中如何将Object设置在Array之前?

c++ - 更多左值错误

Java 字符串到 JSON,反之亦然

Java 空指针异常

java - 无法生成 Birt 报告,报告引擎无法初始化空发射器

android - Xamarin 和 RestSharp - 异步调用挂起/永不返回

java - 删除节点时 UI 不更新

android - 每当我尝试创建一个新的 react 函数时,未定义都不是一个函数

android - 关闭游标的成语