在 JSON 中搜索对象

2023-11-29

{"widget": {
    "debug": "on",
    "window": {
        "title": "Sample Konfabulator Widget",
        "name": "main_window",
        "width": 500,
        "height": 500
    },
    "image": { 
        "src": "Images/Sun.png",
        "name": "sun1",
        "hOffset": 250,
        "vOffset": 250,
        "alignment": "center"
    },
    "text": {
        "data": "Click Here",
        "size": 36,
        "style": "bold",
        "name": "text1",
        "hOffset": 250,
        "vOffset": 100,
        "alignment": "center",
        "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
    }
}}    

这是我的 JSON 字符串。现在我想在此 JSON 中搜索名称,然后显示结果...


遍历键: (增强阿米特·古普塔的答案)

var result = [];
getNames(data, "name");
document.write("result: " + result.join(", "));

function getNames(obj, name) {
    for (var key in obj) {
        if (obj.hasOwnProperty(key)) {
            if ("object" == typeof(obj[key])) {
                getNames(obj[key], name);
            } else if (key == name) {
                result.push(obj[key]);
            }
        }
    }
}

工作演示@http://jsfiddle.net/rorkules/JFEMH/

const data = {
  "widget": {
    "debug": "on",
    "window": {
      "title": "Sample Konfabulator Widget",
      "name": "main_window",
      "width": 500,
      "height": 500
    },
    "image": {
      "src": "Images/Sun.png",
      "name": "sun1",
      "hOffset": 250,
      "vOffset": 250,
      "alignment": "center"
    },
    "text": {
      "data": "Click Here",
      "size": 36,
      "style": "bold",
      "name": "text1",
      "hOffset": 250,
      "vOffset": 100,
      "alignment": "center",
      "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
    }
  }
}

let result = [];
getNames(data, "title");
document.write("result: " + result.join(", "));

function getNames(obj, name) {
  for (var key in obj) {
    if (obj.hasOwnProperty(key)) {
      if ("object" == typeof(obj[key])) {
        getNames(obj[key], name);
      } else if (key == name) {
        result.push(obj[key]);
      }
    }
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 JSON 中搜索对象 的相关文章

  • 玉石压痕错误

    因此 对于我的 Express 网站 我使用 jade 所以我决定尝试修改我的布局文件 以便我可以开始设计我的网站 我修改了原始布局代码 有效 但我开始在任何扩展布局的文件中出现缩进错误 如下所示 500 Error home kevin
  • Golang 结构的 XML 和 JSON 标签?

    我有一个可以根据 HTTP 请求标头输出为 JSON 或 XML 的应用程序 我可以通过将正确的标签添加到我正在使用的结构中来实现正确的输出 但我不知道如何为 JSON 和 XML 指定标签 例如 序列化以纠正 XML type Foo s
  • 鼠标移动时画布拖动

    我正在尝试构建一个可以使用鼠标移动拖动的画布 我做了一些我无法理解的错误 因为一开始似乎有效 然后出现了一个增量错误 使画布移动得太快 考虑以下代码 window onload function var canvas document ge
  • 解释一下这个令人困惑的 dojo 教程声明语法

    我正在阅读使用的语法道场的声明 http dojotoolkit org documentation tutorials 1 8 declare 用于班级创建 描述很混乱 The declare function is defined in
  • json.net自定义jobject反序列化

    我正在尝试使用 JsonConvert DeserializeObject string 将字符串反序列化为可与动态一起使用的 jobject 来动态访问 json 文档 但是我想避免知道文档的大小写 以便我可以输入 dynamic doc
  • 指定 HTML5 输入类型 = 日期的值输出?

    我想将本机日期选择器添加到我的应用程序中 该应用程序当前使用遗留的本地系统 日期输入支持尚未广泛普及 但如果我可以基于兼容性提供这两种实现 那就太理想了 有没有办法指定 HTML 日期选择器给出的值的输出 歌剧的默认设置是yyyy mm d
  • 插件 gulp-babel 错误:插件/预设文件不允许导出对象,只能导出函数

    我现在尝试在我的 Ionic v1 应用程序中使用 JavaScript 2015 ES6 包 json name test version 1 0 0 dependencies ionic native deeplinks 4 18 0
  • 为某个时刻添加持续时间 (moment.js)

    时刻版本 2 0 0 阅读文档后 http momentjs com docs manipulating add 我认为这很简单 Chrome 控制台 var timestring1 2013 05 09T00 00 00Z var tim
  • 公开闭包内的方法

    当我们在闭包内创建一个方法时 该方法将成为该闭包的私有方法 并且在我们以某种方式公开它之前无法访问它 怎么可能暴露呢 您可以返回对它的引用 var a function var b function I m private alert go
  • Android 解析 JSON 卡在 get 任务上

    我正在尝试解析一些 JSON 数据 我的代码工作了一段时间 我不确定我改变了什么突然破坏了代码 当我运行代码时 我没有收到任何运行时错误或警告 我创建一个新的 AsyncTask 并执行它 当我打电话时 get 在这个新任务中 调试器在此行
  • 在给定索引上将字符串分成两部分并返回两部分

    我有一个字符串 需要在给定索引上拆分 然后返回两个部分 并用逗号分隔 例如 string 8211 8 211 98700 98 700 因此 我需要能够在任何给定索引上拆分字符串 然后返回字符串的两半 内置方法似乎执行分割 但只返回分割的
  • 为什么这个递归函数返回未定义?

    我正在尝试编写一个使用递归组合两个字符串的函数 我的代码如下 但我不知道为什么该函数返回未定义 特别是当我在基本情况下使用 console log 时 它不会打印未定义而是打印正确的值 var str3 function merge str
  • 是否有跨浏览器的方式在Javascript中设置style.float?

    通常 如果您需要在 JavaScript 中设置样式属性 您可以这样说 element style attribute value 虽然略有不同 但属性名称通常与 HTML 属性名称类似 尽管是驼峰式 对我来说问题是 float 属性不起作
  • 文件缓存:查询字符串与上次修改时间?

    我正在研究缓存网站资源的方法 并注意到大多数与我类似的网站都使用查询字符串来覆盖缓存 例如 css style css v 124942823 后来 我注意到每当我保存 style css 文件时 最后修改的标头都会 更新 使得查询字符串变
  • 如何在数据表角度中基于 JSON 动态填充表值?

    我在用着Angular 数据表 https l lin github io angular datatables 我需要能够根据返回的数据动态创建表 换句话说 我不想指定列标题 Example json数据 id 2 city Baltim
  • 即使我的情况按预期发生变化,Angular ngClass 也不会更新我的课程

    我正在创建的模板中有类似的内容 div class nng 3 div 价值app layout isNavbarFixed等用零或一初始化 并且页面第一次加载时 适当的类被插入到我的div 不过 此后通
  • 将默认搜索文本添加到搜索框 html

    我正在努力将 搜索 文本添加到搜索框 我正在努力实现 onfocus 消失文本 And onblur 重新出现文本 到目前为止 我已经实现了这一点 但我必须将其硬编码为 html eg
  • Firebase 身份验证和实时应用程序数据库如何保护自身安全?

    从一般开发的角度来看 我很好奇如何保护在线资源的访问 我们使用以下 Firebase 配置参数初始化 Web 应用程序 apikey authdomain projectid databaseurl messagesenderid 服务器如
  • jQuery:向左滑动和向右滑动

    我见过slideUp and slideDown在 jQuery 中 左右滑动的功能 方式怎么样 您可以使用 jQuery UI 中的附加效果来做到这一点 详情请参阅此处 http docs jquery com UI Effects Sl
  • 在引导程序中以编程方式更改选项卡窗格选项卡

    我使用的选项卡窗格定义为 ul class nav nav tabs li a href personal Personal Information a li li class active a href contact Contact a

随机推荐

  • 变量赋值避免无限循环

    我有两段递归代码 打算递归地打印出数组的一半 直到到达数组长度为 1 的数组 没有变量赋值的代码无限运行 而有变量赋值的代码则按预期运行 有任何线索说明为什么会出现这种情况吗 无限运行 CAREFUL function half arr h
  • 突出显示 DBGrid 中的特定文本

    我正在执行查询并在 dbgrid 中显示返回的数据 我想突出显示符合搜索条件的项目 就像是 搜索方式 test 在 DBGrid 中 返回的数据将为 ID Return 1 This is a test 2 Test ing 这里的目标无疑
  • 如何确定 SharePoint 列表的磁盘大小?

    我有一个包含大约 5500 个项目的列表 我想了解磁盘上的大小 我有什么办法可以做到这一点吗 如有必要 我不介意在数据库中运行查询 导航http myapplication mySitecollection layouts storman
  • 类型 将指数数转换为 int 或 float

    下面的代码 echo int 2e2 echo int 2e2 echo float 2e2 outputs 2 200 200 我不知道为什么 谢谢 2e2 is scientific notation meaning 2 102 200
  • 使用 invalidateOptionsMenu() 打开/关闭 NavDrawer 会导致 SearchView 上的 onRestore 调用和 onQueryTextChange 也被调用

    我有一个带有回调实现的 MainActivity DrawerListFragment Callback ItemListFragment Callbacks SearchView OnQueryTextListener 我还添加了一个 A
  • 我对drawable-hdpi 和drawable-mdpi 感到困惑

    我正在尝试让我的 Android 应用程序在手机类型设备和平板电脑上运行 对于布局 我有layout normal和layout large 并且我将xml文件放入每个布局中 似乎为每个设备选择了正确的布局 手机的layout normal
  • 芹菜组和链

    我需要对 Celery 中的一些任务进行排序 其中一些应该作为单个任务 一些应该并行工作 当组中的任务完成时 它应该传递下一个任务 chain task1 s task2 s group task3 s task4 s group task
  • 在C中反转单​​链表[重复]

    这个问题在这里已经有答案了 可能的重复 如何仅使用两个指针反转单链表 这是反转链表的 C 代码 但这并没有产生所需的输出 struct node temp prev while head gt next NULL temp prev hea
  • 混合模式 C++/CLI 应用程序未正确关闭 CLR

    我的混合模式 MFC 应用程序正在创建错误的内存泄漏 因为 CRT 没有时间在 MFC dll 关闭之前关闭 我有一个非常简单的小应用程序来显示问题 include
  • 具有本地化内容的 ASP.NET 密码恢复控件

    我正在使用 ASP NET 成员资格和登录控件开发一个简单的门户应用程序 我想使用 PasswordRecovery 控件发送包含忘记密码的电子邮件 但我的门户需要本地化 我有一个现有的内容管理系统 我正在从中提取本地化字符串 并且我想将
  • MySQL:ORDER BY RAND() 的替代方法

    我读过一些 MySQL 的替代品ORDER BY RAND 函数 但大多数替代方案仅适用于需要单个随机结果的情况 有谁知道如何优化返回多个随机结果的查询 例如 SELECT u id p photo FROM users u profile
  • Android 连接 2 个音频(wav 或 mp3)文件

    我必须连接 2 个或更多音频 wav 或 mp3 文件并获取一个音频文件 我怎样才能在安卓中做到这一点 提前致谢 下面的代码部分将按照已进行的选择数量进行工作 选择意味着选择了多少个文件 将两个 wav 文件放入 sdcard0 SSoft
  • 将 list_selector_background 用作 LayerList 可绘制的 ListView 项目

    如果我们使用 ListView 或 ExpandableListView 默认背景是 android drawable list selector background 我有一个 ExpandableListView 它显示按日期分组的数据
  • 在线程之间锁定图像时出现问题

    我需要在两个不同的线程中获取锁 以便访问 EmguCv 中的位图 从网络摄像头填充 我有一个 GetFrame 函数 可以查询相机并将其返回的内容放入 NET 位图中 我有两个线程需要访问此位图 一个需要写入位图并将位图分配给图片框 另一个
  • 在另一个表中引用 MySQL ENUM

    我创建了一个 SkillLevel 表 CREATE TABLE sklllevel Name varchar 20 NOT NULL level enum No Experience Beginner Expert Advisor DEF
  • SQL 排名功能是否应被视为“谨慎使用”

    这个问题源于关于是否在数据库中使用SQL排名功能的讨论 特殊案例 任何常见的 RDBMS 都包含一些排名功能 即其查询语言具有以下元素 TOP n ORDER BY key ROW NUMBER OVER ORDER BY key or O
  • 在 Git 中,如何查看和管理不在分支中的提交?

    提交不一定在分支中 那么如何查看和管理这些提交呢 另外 是否可以从 gitk 查看这些提交 多谢 PS 为了让事情更清楚 这里有一个例子 git init git commit touch toto git add toto git com
  • Google Dataflow 挂起且没有日志

    当我跑步时WordCount 作业示例从带有 DataflowPipelineRunner 的 Dataflow 文档来看 它启动了工作线程 然后以 正在运行 状态挂起 最后两条状态消息 Jan 29 2016 22 05 50 S02 b
  • 在ggplot中将某一类别的颜色设为灰色?

    试图将这一组设置为 未知 灰色 并在图例中使用灰色键 data lt fread data path bgrd lt data data pop Unknown ref lt data data pop Unknown p lt ggplo
  • 在 JSON 中搜索对象

    widget debug on window title Sample Konfabulator Widget name main window width 500 height 500 image src Images Sun png n