如何在不输入对象名称的情况下访问对象的数据?- JSON

Posted

技术标签:

【中文标题】如何在不输入对象名称的情况下访问对象的数据?- JSON【英文标题】:How can I access the data of an object without having to put its name?- JSON 【发布时间】:2021-09-25 00:39:32 【问题描述】:

我想访问对象 3 的数据,但我会有多个用户,所以这个数字可以改变。有谁知道我怎样才能避免输入这个号码并访问他们的数据或以某种方式访问​​?

【问题讨论】:

你用的不是 id 吗? 您可以使用 ObjectMapper 将您的 Json 映射到 TreeMap,然后获取该映射的最后一个条目。 (假设您需要最后一个用户的详细信息) 我想获取对象 3 的数据,但是假设这 3 可以更改为另一个数字,我不知道如何访问它?有什么方法可以访问吗? 【参考方案1】:

由于我只想访问单个对象,因此我获取了对象的名称并使用以下方法搜索其名称:

json.names().get(0)

这会返回我们:

["3"]

同样,如果我们想通过data来获取每一个数据,我们使用for循环来获取每个对象的名字。

JSONArray arrayJson = json.names();
for (int i=0; i<arrayJson.length(); i++)
   String nameOfArray = json.names().get(i).toString();

其他代码可以返回我们:

["3", "7", "5"]

用下面的代码解决我的问题:

JSONObject json = new JSONObject(result);
JSONObject json2 = new JSONObject(String.valueOf(json.getJSONObject(String.valueOf(json.names().get(0)))));
    
JSONArray arrayJson = json.names();
for (int i=0; i<arrayJson.length(); i++)
    String nameOfArray = json.names().get(i).toString();

    
Log.e("JSON", json.toString());
Log.e("JSON-Key", json.names().get(0).toString());

JSONArray array = json2.getJSONArray("notificaciones");
for (int i = 0; i<array.length(); i++)
   JSONObject array2 = new JSONObject(String.valueOf(array.getJSONObject(i)));
   String yourData = array2.getString("your value");

【讨论】:

以上是关于如何在不输入对象名称的情况下访问对象的数据?- JSON的主要内容,如果未能解决你的问题,请参考以下文章

在不知道对象键的情况下访问对象值

核心数据:如何在不通过字符串引用实体的情况下创建托管对象

如何在不使用共享首选项的情况下将数据存储为颤动的对象[关闭]

restkit,如何在没有对象映射的情况下访问对象

如何在不复制对象的情况下向 Python 公开返回 C++ 对象的函数?

如何在不产生 y 旋转抖动的情况下统一使用触摸输入来钳制游戏对象的 z 旋转