在 Javascript 中解析 JSON 响应以获取键/值对 [重复]

2024-04-06

如何仅在 Javascript 中获取每个对象的名称和值?


访问对象的属性有两种方法:

var obj = {a: 'foo', b: 'bar'};

obj.a //foo
obj['b'] //bar

或者,如果您需要动态执行此操作:

var key = 'b';
obj[key] //bar

如果您还没有将其作为对象,则需要转换它 https://stackoverflow.com/questions/4935632/how-to-parse-json-in-javascript.

对于更复杂的示例,我们假设您有一个代表用户的对象数组:

var users = [{name: 'Corbin', age: 20, favoriteFoods: ['ice cream', 'pizza']},
             {name: 'John', age: 25, favoriteFoods: ['ice cream', 'skittle']}];

要访问第二个用户的年龄属性,您可以使用users[1].age。要访问第一个用户的第二个“favoriteFood”,您可以使用users[0].favoriteFoods[2].

另一个例子:obj[2].key[3]["some key"]

这将访问名为 2 的数组的第三个元素。然后,它将访问该数组中的“key”,转到该数组的第三个元素,然后访问属性名称some key.


正如 Amadan 指出的那样,讨论如何循环不同的结构可能也值得。

要循环数组,可以使用简单的 for 循环:

var arr = ['a', 'b', 'c'],
    i;
for (i = 0; i < arr.length; ++i) {
    console.log(arr[i]);
}

循环一个对象有点复杂。如果您绝对肯定该对象是普通对象,则可以使用普通对象for (x in obj) { }循环,但添加一个更安全拥有自己的财产 https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/hasOwnProperty查看。在您无法验证对象是否没有继承属性的情况下,这是必要的。 (它也对代码进行了一些未来的验证。)

var user = {name: 'Corbin', age: 20, location: 'USA'},
    key;

for (key in user) {
    if (user.hasOwnProperty(key)) {
        console.log(key + " = " + user[key]);
    }
}    

(请注意,我假设您使用的任何 JS 实现都有console.log。如果没有,你可以使用alert或者某种 DOM 操作。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Javascript 中解析 JSON 响应以获取键/值对 [重复] 的相关文章

  • JavaScript 中的“this”如何工作?

    我知道还有其他几篇关于这个主题的帖子 但它们仍然让我感到困惑 我已经包含了 jQuery 和所有内容 我有一个简单的 javascript 类 如下例所示 function CarConstructor this speed 19 in m
  • JS专用鼠标按键

    我的鼠标侧面有两个按钮 其默认行为是 后退 和 前进 我想知道的是是否可以在 JavaScript 中检测这些鼠标按钮的点击 或者这些按钮是否是类似于键盘的 播放 音量调高 和 无线开 关 的 特殊 按钮纽扣 我不知道任何特定的鼠标事件 但
  • AJAX 与 Facebook 身份验证

    我已经构建了一个完全基于 AJAX 的应用程序 它没有页面刷新并使用 AJAX 加载所有内容 现在我想以一种不会重定向用户进行页面刷新的方式嵌入 Facebook 身份验证 目前 Facebook 的工作方式如下 用户通过单击 Facebo
  • 如何在 Angular 2 中禁用浏览器后退按钮

    我正在使用 Angular 2 开发一个网站 有没有办法使用 Angular 2 禁用或触发浏览器后退按钮 Thanks 不确定这是否已经排序 但仍然发布答案 以供将来参考 为了解决这个问题 您基本上需要在应用程序组件中添加一个侦听器并设置
  • 使用 Ctrl+v 或右键单击 -> 粘贴检测粘贴的文本

    使用 JavaScript 如何检测用户将哪些文本粘贴到文本区域 您可以使用粘贴事件来检测大多数浏览器中的粘贴 尤其是 Firefox 2 当您处理粘贴事件时 记录当前选择 然后设置一个简短的计时器 在粘贴完成后调用一个函数 然后 该函数可
  • 如何在 jquery 上并排区分 mouseout/leave 事件?

    有没有办法知道鼠标事件是否已从元素的特定一侧离开 我的意思是 我有一个带有 mouseover mouseenter 事件的 DIV 并且我只想在鼠标离开到元素的左侧时触发该操作DIV 并向右 但如果它从底部或顶部离开 则不应触发任何操作
  • 我可以使用 javascript 捕获并保存网页的当前状态吗

    我需要使用 javascript 获取页面的全部内容并将其发送到服务器脚本以保存它 我想在用户使用 AJAX 和其他 javascript 工具对页面进行一些更改后执行此操作 我不想要某些元素的状态 我想基本上获取 body 标记内的所有内
  • Firebug 说“此页面上没有 Javascript”,即使页面上确实存在 JavaScript

    为什么Firebug说有No Javascript on this page当页面上明显有 JavaScript 负载时 我什至多次重新加载页面以确保但它仍然显示相同的消息 它以前从来没有这样做过 但突然间它就行为不当了 是因为某些配置问题
  • 是否可以告诉 jsdoc 在与源代码分开的文件中查找该代码的文档?

    我希望内联注释尽可能短 因为我的经验是超过 3 或 4 行的注释往往会被掩盖 从而产生很多不必要的 阅读手册行 遗留系统要求我遵守与 jsdoc 兼容的格式来记录代码 如果要正确记录许多不言而喻的事情 则需要明确声明它们 实际上每个标签都可
  • 在 VueJs 中使用上下键自动完成搜索

    除了自动完成搜索之外 我还想添加功能以允许使用 VueJs 按下 向上键功能 我的模板如下所示 div h2 Todos h2 div class autocomplete div div
  • javascript RegExp 的奇怪行为:相同的正则表达式产生不同的结果[重复]

    这个问题在这里已经有答案了 可能的重复 为什么 Javascript 中带有全局标志的 RegExp 会给出错误的结果 https stackoverflow com questions 1520800 why regexp with gl
  • WCF 复杂 JSON 输入错误(无法通过 QueryStringConverter 转换)

    我在将复杂 JSON 作为 WCF 服务中的参数工作时遇到问题 在 Visual Studio 2008 SP1 中使用 Microsoft Net 3 5 SP1 签订以下合同 ServiceContract public interfa
  • onchange 选择框

    假设我们有 2 个不同的选择框 具有相同数量的选项
  • Vue Chart.js - 数据变化时图表不更新

    我正在使用 Vue js 和 Chart js 绘制一些图表 每次我调用该函数时generateChart 图表不会自动更新 当我在 Vue Devtools 中检查数据时 它们是正确的 但图表没有反映数据 但是 当我调整窗口大小时 图表确
  • javascript 中的类和类名有什么区别?

    为了找到某个类名的子对象 我必须创建自己的辅助函数 findChildrenByTagName function obj name var ret for var k in obj children if obj children k cl
  • Html页面在底部加载

    我需要一个 HTML 页面在页面加载时自动向下滚动 所以基本上加载在底部 可以使用JavaScipt吗 请您帮助我或引导我走向正确的方向 感谢所有帮助 谢谢 尝试这个 window scroll 0 document documentEle
  • 有没有办法在不托管网站的情况下呈现网站并共享它?

    我正在为一个项目创建一个 repl it 网站 问题是我的老师要求不要发布该网站 这意味着我无法使用 repl it 来托管它 我想知道是否有任何方法可以制作可以通过 Google Chrome 查看的网站副本 而无需连接到主机 我有所有的
  • 如何以编程方式移动 OpenLayers Vector?

    API 文档为OpenLayers Feature Vector http dev openlayers org apidocs files OpenLayers Feature Vector js html说 Vector 本身根本没有方
  • Java 将函数添加到 json 对象而不使用引号。

    我正在用 java 构建一个 json 对象 我需要将一个函数传递到我的 javascript 中并使用 jquery isFunction 对其进行验证 我遇到的问题是我必须将 json 对象中的函数设置为字符串 但 json 对象将周围
  • Javascript - 从 AWS s3 存储桶读取镶木地板数据(使用快速压缩)

    In nodeJS 我正在尝试读取镶木地板文件 压缩 snappy 但没有成功 I used https github com ironSource parquetjs https github com ironSource parquet

随机推荐

  • 为什么 .json() 是异步的? [复制]

    这个问题在这里已经有答案了 我一直在关注教程并发现以下代码片段 const myAsyncFunction async gt const usersResponse await fetch https jsonplaceholder typ
  • ValidateCredentials 对于未知用户返回 true?

    我在这里看到一些奇怪的行为PrincipalContext ValidateCredentials 该设置是父 子设置中的两个 Active Directory 域 因此我们有主域company com和子域development comp
  • Google Slide API - 如何多次复制一张幻灯片并每次创建一个唯一的对象 ID

    一般来说 我希望人们将一些数据放入谷歌工作表中并提供一个按钮 该按钮获取数据并自动填充预制的谷歌幻灯片 我选择了复制主幻灯片 然后用数据替换单个文本模块的方法 有更好的方法来实现我的目标吗 这是主幻灯片 这是我用于复制的代码 但它只能复制母
  • 当键列具有不同名称时实体拆分?

    我正在使用 Entity Framework 4 3 1 Code First 并且需要在两个表之间拆分实体 这些表有一个共享的主键 并且是一对一的 但每个表上的列的名称并不相同 我无法控制数据布局 也不能请求任何更改 例如 SQL 表可以
  • 带锚点的 ASP.Net MVC RedirectToAction

    我有以下问题 例如我有这样的路线 routes Add new Route forums thread threadOid last new MvcRouteHandler Defaults new RouteValueDictionary
  • EnableRaisingEvents(启用和禁用它)

    我正在维护一些代码 其中有两个 FileSystemWatcher 事件 这使得调试变得困难 并且有错误 所以我的想法是通过使执行顺序化来简化代码 差不多是这样的 Main method 1 normal code here 2 enabl
  • 如何配置 Beyond Compare 以忽略注释中的 SCM 替换文本?

    我确实有一些被 SCM 替换的文本序列 在我的例子中是 Perforce 我确实想配置 BeyondCompare 将这些序列视为不重要的差异 以便在比较文件时能够忽略它们 就我而言 它是关于 Python 源文件的 序列看起来像 Id d
  • 如何在 Struts 2 中创建自定义 URL?喜欢 www.twitter.com/goodyzain

    我正在开发一个项目 我想为每个用户提供唯一的 URL 例如 www SocialNetwork com jhon www SocialNetwork com jasmine 到目前为止我能够实现这一点 www SocialNetwork c
  • Flow Shop 到布尔可满足性 [多项式时间缩减]

    我联系您是为了了解 如何将流水车间调度问题 转化为布尔可满足性 我已经对 N N 数独 N 皇后和班级调度问题进行了此类简化 但我对如何将流水车间转换为 SAT 有一些问题 SAT 问题如下所示 目标是 使用不同的布尔变量 找到每个变量的影
  • Kotlin - 为什么编译器合约只允许引用函数参数

    在编写验证函数时 这些验证函数通常会检查可空性 尽管在调用这些函数之后 可以安全地使用对象成员 就像它们不可为 null 一样 但 Kotlin 编译器契约不允许指定此行为 例如 data class EmployeeDto val nam
  • 为 Windows 创建 Ruby 应用程序

    我想开发一个Windows应用程序 老实说 我现在不太关心跨平台 但仍然很好 我想使用 Ruby 因为它的语法相当简单 而且 简单易学 我的应用程序就像一个 游戏关卡创建者 您可以在其中设计自己的关卡 然后通过读取创建者应用程序创建的项目文
  • 意外响应代码 404 齐射

    我收到以下代码发送的某些请求的错误 但我不知道为什么 private void DeActivateReq String toolID String token String Childid String url http 54 77 12
  • 如何将 AutoValue 与 Retrofit 2 结合使用?

    我已经在一个项目中使用了 AutoValue 和 android apt 插件 并且我知道 Ryan Harter 的 AutoValue gson 扩展 但是如何连接 Retrofit 2 以在抽象类上使用扩展和工厂方法 String g
  • 具有多个预览的 AVCaptureSession

    我有一个 AVCaptureSession 与 AVCaptureVideoPreviewLayer 一起运行 我可以看到视频 所以我知道它正在发挥作用 但是 我想要一个集合视图 并在每个单元格中添加一个预览层 以便每个单元格显示视频的预览
  • Celery 使连接由对等方重置

    我设置了rabbitmqserver并使用以下步骤添加了用户 uruddarraju usr lib rabbitmq lib rabbitmq server 3 2 3 sudo rabbitmqctl list users Listin
  • Chromedriver `driver.manage.logs.get(:browser)` 在 chromedriver 75.0.3770.8 上失败

    访问时driver manage logs get browser 在 chromedriver 75 0 3770 8 上我收到此错误 undefined method log for
  • pygame中的旋转

    我一直在寻找如何使我的图像围绕单个点旋转的解决方案 但据我发现 没有任何方法真正起作用 我知道的 我可以使用旋转pygame transform rotate surface angle 我需要不断重置中心 以便图像不会自行旋转 需要更新图
  • 如何设置进度条以在android中加载数据的活动

    这是我的第一堂课 进行 URL 加载 public class HelloWebViewClient extends WebViewClient Override public boolean shouldOverrideUrlLoadin
  • 如何仅使用javascript而不使用jquery进行无限滚动

    我希望用javascript而不用jquery实现无限滚动 我是 JavaScript 新手 经过网上搜索 我得到了这段代码 div div class page div div
  • 在 Javascript 中解析 JSON 响应以获取键/值对 [重复]

    这个问题在这里已经有答案了 如何仅在 Javascript 中获取每个对象的名称和值 访问对象的属性有两种方法 var obj a foo b bar obj a foo obj b bar 或者 如果您需要动态执行此操作 var key