【问题标题】:print multi dimentional json array in java [duplicate]在java中打印多维json数组[重复]
【发布时间】:2019-08-13 15:17:18
【问题描述】:

我的应用从服务器获取 JSON 响应。响应字符串具有多行和多列。我需要用java打印这个。

这是我的 JSON 响应:

[
  {
    "name": "name2",
    "id": "99",
    "email": "ad@e.com"
  },
  {
    "name": "zca",
    "id": "96",
    "email": "as2c2@d.d",
  }
]

这是java部分:

    OkHttpClient client = new OkHttpClient();

    String url = ServerConstants.BROWSE_URL;
    //String url = "https://reqres.in/api/users?page=2";

    Request request = new Request.Builder()
            .url(url)
            .build();

    client.newCall(request).enqueue(new Callback()
    {
        @Override
        public void onFailure(Call call, IOException e)
        {
            e.printStackTrace();
        }

        @Override
        public void onResponse(Call call, Response response) throws IOException
        {
            if (response.isSuccessful())
            {
                final String myResponse = response.body().string();
                //System.out.println(Arrays.asList(new BundleFunctions().MakeArrayListFormJSON(myResponse)));
                bundle = new BundleFunctions().MakeBundleFromJSON(myResponse);
                //System.out.println("this is size ------- "+bundle.size());
                //System.out.println("this is response ------ "+myResponse);
                Browse.this.runOnUiThread(new Runnable()
                {
                    @Override
                    public void run()
                    {
                        tv.setText(myResponse);

                        Set<String> keys = bundle.keySet();

                        for(String key : keys)
                        {
                            Object o = bundle.get(key);
                        }
                    }
                });
            }
        }
    });

我需要在 java 中像这样打印每个人:

(人数根据数组索引FCFS)

人员 1 - 姓名:name2,id:99,电子邮件:ad@e.com

第 2 个人 - 姓名:zca,id:96,电子邮件:as2c2@d.d

请教我最简单的方法

【问题讨论】:

  • 到目前为止你尝试过什么?请出示您的相关代码。
  • 好的等待显示
  • Android 内置了处理 JSON 的类,例如 JSONArray 和 JSONObject。使用它们,那么通过 JSONarray 循环是一件简单的事情
  • @Christopher 请看一看。此方法仅通过 Object o 获取 1 行而不是全部内容

标签: java android arrays json list


【解决方案1】:

JSON 真的很清楚,在你的情况下是ObjectsArray Person 对象,创建Person POJO 类

人物

public class Person {

 private String name;

 private String id;

 private String email;

 // getters and setters

 }

将上面的 json 解析为 List&lt;Person&gt; 并根据需要打印每个 Person

【讨论】:

  • [java 更新] 我该怎么做?如果我使用 Object o ,它只会捕获 1 行
  • 显示此bundle = new BundleFunctions().MakeBundleFromJSON(myResponse); 捆绑包@NinjaStar
  • 这不是正确的方法,您需要将 Json 字符串解析为 List&lt;Person&gt; 我相信您正在使用 json 库 @NinjaStar
  • 不,我没有使用库,但我应该使用哪一个?
【解决方案2】:

您的 JSON 示例看起来不像多维数组。这是一个包含一堆对象的数组。如果这是针对 java 的,为什么不使用 jackson 或 GS​​on 或类似的库来获取数组列表中的对象!您只需定义一个 POJO 对象,其变量名称与 getter 和 setter 匹配。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-10-25
  • 2012-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-17
相关资源
最近更新 更多