如何在 JSON 对象中获取 JSON 数组?

2024-01-18

这是我的 JSON:

{
    "data": [
        {
            "id": 1,
            "Name": "Choc Cake",
            "Image": "1.jpg",
            "Category": "Meal",
            "Method": "",
            "Ingredients": [
                {
                    "name": "1 Cup Ice"
                },
                {
                    "name": "1 Bag Beans"
                }
            ]
        },
        {
            "id": 2,
            "Name": "Ice Cake",
            "Image": "dfdsfdsfsdfdfdsf.jpg",
            "Category": "Meal",
            "Method": "",
            "Ingredients": [
                {
                    "name": "1 Cup Ice"
                }
            ]
        }
    ]
}

这就是我获取 id 和 name 的方式,您可以看到这部分在返回非数组值的 JSON 值方面工作正常。

//getting whole json string
JSONObject jsonObj = new JSONObject(jsonStr);

//extracting data array from json string
JSONArray ja_data = jsonObj.getJSONArray("data");
int length = jsonObj .length(); 

//loop to get all json objects from data json array
for(int i=0; i<length; i++) 
{
    JSONObject jObj = ja_data.getJSONObject(i);
    Toast.makeText(this, jObj.getString("Name"), Toast.LENGTH_LONG).show();

    // getting inner array Ingredients
    JSONArray ja = jObj.getJSONArray("Ingredients");
    int len = ja.length();


} 

现在我正在尝试从成分数组中获取值,但我不确定如何获取它们?这是我迄今为止一直在尝试的。

//getting whole json string
JSONObject jsonObj = new JSONObject(jsonStr);

//extracting data array from json string
JSONArray ja_data = jsonObj.getJSONArray("data");
int length = jsonObj .length(); 

//loop to get all json objects from data json array
for(int i=0; i<length; i++) 
{
    JSONObject jObj = ja_data.getJSONObject(i);
    Toast.makeText(this, jObj.getString("Name"), Toast.LENGTH_LONG).show();

    // getting inner array Ingredients
    JSONArray ja = jObj.getJSONArray("Ingredients");
    int len = ja.length();

    // getting json objects from Ingredients json array
    for(int j=0; j<len; j++)
    {
        JSONObject json = ja.getJSONObject(j);
        Toast.makeText(this, json.getString("name"), Toast.LENGTH_LONG).show();
    }
} 

但这样做是行不通的,我怎样才能让它工作呢?


已解决,使用字符串数组列表从成分中获取名称。使用下面的代码:

JSONObject jsonObj = new JSONObject(jsonStr);

//extracting data array from json string
JSONArray ja_data = jsonObj.getJSONArray("data");
int length = ja_data.length();

//loop to get all json objects from data json array
for(int i=0; i<length; i++){
    JSONObject jObj = ja_data.getJSONObject(i);
    Toast.makeText(this, jObj.getString("Name"), Toast.LENGTH_LONG).show();
    // getting inner array Ingredients
    JSONArray ja = jObj.getJSONArray("Ingredients");
    int len = ja.length();
    ArrayList<String> Ingredients_names = new ArrayList<>();
    for(int j=0; j<len; j++){
        JSONObject json = ja.getJSONObject(j);
        Ingredients_names.add(json.getString("name"));
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 JSON 对象中获取 JSON 数组? 的相关文章

  • 使用 KnockoutJs 映射插件进行递归模板化

    我正在尝试使用以下方法在树上进行递归模板化ko映射 插入 http knockoutjs com documentation plugins mapping html 但我无法渲染它 除非我定义separate每个级别的模板 在以下情况下
  • Android - AudioRecord类不读取数据,audioData和fftArray返回零

    我是 Android 新手 一直在开发音调分析器应用程序 最低 SDK 8 我读了很多关于如何实现 Audiorecord 类的文章 但我想知道为什么它在我录制时不读取任何数据 我尝试显示 audioData 和 fftArray 的值 但
  • 使用 Ajax.Request 将 JSON 从浏览器传递到 PHP 的最佳方法

    您好 我有一个 JSON 对象 它是一个二维数组 我需要使用 Ajax Request 将其传递给 PHP 我知道的唯一方法 现在我使用js函数手动序列化我的数组 并获取以下格式的数据 s 1 d 3 4等 我的问题是 有没有办法更直接 有
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • WorkManager 或 AlarmManager 用于日常请求然后通知工作?

    这是用例 用户设置具有特定时间的每日通知 在指定时间 发出网络请求以获取一些数据 然后使用检索到的数据显示通知 我不确定是否应该使用 AlarmManager 还是 WorkManager 来实现这个用例 据我了解 AlarmManager
  • Android Studio 缓慢的增量构建

    我已经完成了许多步骤来完善我们的构建系统 those https stackoverflow com questions 16775197 building and running app via gradle and android st
  • Android - 以编程方式选择菜单选项

    有没有办法以编程方式选择菜单选项 基本上 我希望视图中的按钮能够执行与按特定菜单选项相同的操作 我正在考虑尝试调用 onOptionsItemSelected MenuItem item 但我不知道要为菜单项添加什么 是的 有一种方法可以选
  • 没有用于警告的设置器/字段 Firebase 数据库检索数据填充列表视图

    我只是想将 Firebase 数据库中的数据填充到我的列表视图中 日志显示正在检索数据 但适配器不会将值设置为列表中单个列表项中的文本 它只说 没有二传手 场地插入值 这让我觉得我的设置器没有正确制作 但 Android Studio 自动
  • 如何通过SQL查询检查是否有JSON函数?

    有SQL 2016 中的 JSON 函数 https learn microsoft com en us sql t sql functions json functions transact sql例如 JSON VALUE JSON Q
  • 通过电子邮件发送文本文件附件

    我正在尝试附加一个文本文件以便通过电子邮件发送 但每当我打开电子邮件应用程序时 它都会说该文件不存在 请帮助 Intent i new Intent Intent ACTION SEND i setType text plain i put
  • 没有支持 FEATURE_CAMERA_EXTERNAL 的 Android 设备

    根据this doc https source android com devices camera external usb cameras一些 Android 设备允许使用 Camera2 API 访问外部 USB 摄像头 我检查了大约
  • Android:如何从网络异步获取搜索建议?

    我创建了一个可搜索的活动 现在 我想添加从网络服务获取的搜索建议 我想异步获取这些建议 根据添加自定义建议 http developer android com guide topics search adding custom sugge
  • 如何使用 AccessibilityService 在 Android 中模拟按键

    我正在编写一个辅助服务 我一直在尝试在应用程序上进行一些自动搜索 我使用accessibilityservice action paste来填充EditText 然后我需要模拟软键盘上的按键 但我不知道如何做 你们能帮我一下吗 你可以尝试A
  • 我的应用程序中的后退按钮出现问题[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想在手机关闭时清除共享首选项值 你
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供
  • Spring Boot 无法更新 azure cosmos db(MongoDb) 上的分片集合

    我的数据库中存在一个集合 documentDev 其分片键为 dNumber 样本文件 id 12831221wadaee23 dNumber 115 processed false 如果我尝试使用以下命令通过任何查询工具更新此文档 db
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp
  • Android 屏幕方向错误

    我使用的是 Android HTC HERO 2 1 版本 我写的活动
  • Git 实验分支还是单独的实验存储库?

    我正在开发一个 Android 应用程序 并且在整个开发周期中一直使用 Git 现在 我想构建并发布实验性功能 供人们尝试和安装 同时仍将原始的 稳定的应用程序安装在他们的设备上 现在 这意味着我需要使用不同的包名称 这会更改开发项目中的一

随机推荐

  • 使用惰性数据表时,另一个组件不会更新/第二个组件数据落后于一个请求

    我有一个 PrimeFacesp dataTable并通过实现启用延迟加载LazyDataModel dataTable 保存搜索结果 因此在执行搜索请求时 搜索服务仅检索所需的 分页 数据 效果很好 当使用 ajax 请求时p comma
  • Matter JS - 物理 - 如何定义重元素,难以被小元素移动

    我一直在努力研究 Matter JS 的物理原理 试图让它们正确 我有两个要素 Matter Bodies rectangle 400 400 113 66 frictionAir 1 friction 1 density 0 5 rest
  • SCons - 非标准位置的标头/库

    我正在尝试使用 SCons 编译一个程序 该程序需要一组我已安装在非标准位置的依赖项 我已将依赖项安装在 home dja ocr 中 现在我正在尝试编译主程序 但不知道如何告诉 SCons 在哪里查找库和标头 我已经尝试过 除其他外 sc
  • 使用 python 循环遍历文本文件列表

    编辑 为了更清楚起见 已更新帖子 但还没有答案有帮助 好吧 我的任务是获取一个文本文件 每行有 4 个条目 分别是名字 姓氏 小时数 工资率 我要做一些计算 并将所有这些信息放入 python 的格式化表中 现在 我已经有了将数据输入表中的
  • 语法高亮的正确正则表达式是什么?

    使用 NSRegularExpression 进行语法高亮的正确正则表达式是什么 必须通过以下测试 code comment code comment code code string code code comment code code
  • FlipView 控件在 Windows Phone 8 SDK 中不可用

    FlipView 控件在 Windows Phone 8 SDK 中不可用 实现类似功能的替代方法是什么 这里有几个选项 如果您只想显示固定数量的 页面 您可以使用Panorama http msdn microsoft com en us
  • 赛普拉斯抛出安全错误

    我目前正在使用 Chrome 74 运行 并尝试使用 Cypress 来测试我的应用程序中的样式指南 当我加载 Cypress 时 它会抛出此错误 安全错误 阻止了来源为 http localhost 3000 的框架 访问跨源框架 请告诉
  • 您为网站推荐哪种 PHP CMS? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在建立一个网站 需要使用 CMS 如果我使用已经制作好的 CMS 我需要能够轻松扩展它 您有推荐的特定 CMS 还是我应该自己制作一个 CM
  • Bootstrap:如何更改容器的宽度?

    我使用Twitter Bootstrap开发了一个具有固定容器类的网站 但现在客户希望网站宽度为1000px而不是1170px 我不使用 less 文件 有没有快速的方法来解决这个问题 这是解决方案 media min width 1200
  • 如何在一个文件中定义一个 C 函数,然后从另一个文件中调用它?

    如果我在文件中定义一个函数func1 c 我想从文件中调用它call c 我怎样才能完成这个任务 您可以在文件中放置该函数的声明func1 h 并添加 include func1 h in call c 然后你会编译或链接func1 c a
  • JMS Serializer 忽略 Knp Paginator 的映射

    我在使用 JMS 序列化程序排除某些 KNP Paginator 属性时遇到问题 首先 它包含在composer json中 jms serializer bundle 0 13 knplabs knp paginator bundle 2
  • 从应用程序外部记录按键(VB.net)[重复]

    这个问题在这里已经有答案了 我正在制作一个程序 它使用键盘记录器的功能来确定趋势 问题是我无法制作键盘记录器 我已经完成了大部分内容 但当表单失去焦点时我无法按下按键 我见过有人提到键盘和消息挂钩 但我找不到任何示例或理解任何有关它的文档
  • 如何让 JVM 使用服务器的最大(全部剩余)内存

    我有一个 DFS 算法 java 控制台应用程序 当提供更多内存时 它运行得更快 只是一个 DFS 算法应用程序 既没有 I O 也没有其他外部 JVM 资源使用 它只消耗CPU和内存 该应用程序可以在 1GB 内存下运行 但在 2GB 内
  • ASP.NET Razor 页面下拉列表

    div class form group Html LabelFor model gt model CountyId htmlAttributes new class control label col md 2 div class col
  • numpy 二项式随机数效率低吗?

    我一直在从不同的分布中采样随机数 并且刚刚意识到 numpy 二项式随机数与其他分布相比有多慢 例如 timeit for x in range 100 np random binomial 100 0 5 10000 loops best
  • 单击后退按钮时执行代码 (REACTJS)

    例如 当我浏览一个页面到另一页面时 将执行以下代码 当我单击类别页面列表中的产品时 下面的代码设置一个会话存储键 该密钥将具有类别页面的位置 已滚动多少页面 因此 当产品页面打开时 它会将其密钥保存在会话中 如果再次访问同一类别页面 则会恢
  • 级别的特定记录器

    我正在使用 log4j 进行日志记录 我有一个场景 我必须对不同的严重性使用单独的日志记录 例如 对于包 foo 我必须在控制台中打印严重性为 ERROR 的消息 而我必须在日志文件中打印严重性为 WARN 的消息 我如何配置我的 log4
  • 如何在 PHP 中创建 websockets 服务器

    我正在寻找一个简单的代码来创建 WebSocket 服务器 我找到了 phpwebsockets 但它现在已经过时并且不支持最新的协议 我尝试自己更新 但似乎不起作用 php q
  • 如何在 NodeJS 中使用套接字(socket.io)找到客户端的响应时间(延迟)?

    我正在尝试使用 NodeJS 创建一个多人游戏 并且我想同步客户端之间的操作 查找客户端和服务器之间的延迟 请求返回客户端所需的时间 的最佳方法是什么 我的第一个想法是客户端 1 可以发送带有 is 请求的时间戳 因此当客户端 2 收到客户
  • 如何在 JSON 对象中获取 JSON 数组?

    这是我的 JSON data id 1 Name Choc Cake Image 1 jpg Category Meal Method Ingredients name 1 Cup Ice name 1 Bag Beans