在 Nodejs 中解析嵌套 JSON

2024-04-02

我一直在尝试解析嵌套的 JSON 数据,下面是我的代码

var string = '{"key1": "value", "key2": "value1", "Key3": {"key31":"value 31"}}';
var obj = JSON.parse(string);
console.log(obj.key1)
console.log(obj[0]);

这是输出

$ node try.js 
value
undefined

为什么我的未定义obj[0]?在这种情况下以及嵌套键如何获取值key31?

Update现在在@SergeyK和其他人的帮助下,我将上面的代码修改如下

var string = '{"key1": "value1", "key2": "value2", "key3": {"key31":"value 31"}}';

var obj = JSON.parse(string);
var array = Object.keys(obj)

for (var i = 0; i < array.length; i++) {
    console.log(array[i], obj[array[i]]);
}

输出如下

$ node try.js 
key1 value1
key2 value2
key3 { key31: 'value 31' }

But for {"key31":"value 31"}我如何访问密钥key31并得到它的值value 31?


您只是无法通过索引访问命名对象属性。您可以使用obj[Object.keys(obj)[0]]

Edit:

正如 @smarx 在评论中解释的那样,这个答案不适合通过索引直接访问特定属性,因为Object.keys是无序的,因此仅适用于需要循环对象的键/值的情况。

Example:

var string = '{"key1": "value", "key2": "value1", "Key3": {"key31":"value 31"}}';
var obj = JSON.parse(string);
var keysArray = Object.keys(obj);
for (var i = 0; i < keysArray.length; i++) {
   var key = keysArray[i]; // here is "name" of object property
   var value = obj[key]; // here get value "by name" as it expected with objects
   console.log(key, value);
}
// output:
// key1 value
// key2 value1
// Key3 { key31: 'value 31' }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Nodejs 中解析嵌套 JSON 的相关文章

  • 护照:登录和帐户注册的不同重定向

    我在我的应用程序中使用护照模块 github身份验证 我想根据操作进行重定向 我检查这是否只是正常登录或者用户是否第一次登录 passport use new GitHubStrategy clientID conf github app
  • 如何使用有角度的材料创建卡片网格?

    我正在尝试使用 ng repeat 创建每行三张卡片的网格 我有一个普通的 javascript 对象数组附加到范围 下面的代码将为每张卡创建一个新行 div div
  • Cloud Functions for Firebase - 通过 Nodejs/Cloud Function 将多个 PDF 合并为一个

    我遇到了一个问题 我试图通过云功能合并一堆 PDF 然后将合并的 PDF 下载到用户的计算机上 我的提供程序中有一个函数 它调用云函数并传递指向 pdf 的 URL 数组 如下所示 mergePDFs pdfs Create array o
  • Number.IsNaN() 比 isNaN() 更糟糕吗

    Soooooo isNaNJavaScript 显然被破坏了 比如 isNaN isNaN isNaN true isNaN false isNaN 0 返回 false 当它们看起来都是 不是数字 在 ECMAScript 6 中 草案包
  • 如何在React Native Android中获取响应头?

    您好 我想在获取 POST 请求后获取响应标头 我尝试调试看看里面有什么response with console log response 我可以从以下位置获取响应机构responseData但我不知道如何获取标题 我想同时获得标题和正文
  • 使用 JSON.NET 将 JSON 数据反序列化为 C#

    我对使用 C 和 JSON 数据比较陌生 正在寻求指导 我使用的是 C 3 0 NET3 5SP1 和 JSON NET 3 5r6 我有一个已定义的 C 类 需要从 JSON 结构填充该类 但是 并非从 Web 服务检索的条目的每个 JS
  • 本地推送通知到在应用程序内运行 JS 代码的 Win8 Live Tile

    我正在尝试将更新发送到我的应用程序的磁贴 当应用程序运行时 这可以正常工作 例如 当用户单击按钮时 我可以轻松地将磁贴更新通知发送到磁贴 我无法解决的是当应用程序无法运行时如何更新磁贴 我找到的唯一选择是使用以下命令从远程 Web 服务器拉
  • JavaScript 验证和 PHP 验证?

    我正在使用 jquery 验证插件来验证空表单 我还应该在 PHP 中检查一下以确保 100 正确吗 或者用 javascript 验证就可以了 谢谢 您应该始终在服务器上进行验证 如果用户以某种方式不使用 Javascript 提交表单
  • JavaScript 继承;调用和原型

    要在Javascript中实现继承 通常需要执行以下两个步骤 假设我有一个基类 Animal var Animal function name this name name 我现在想从中派生一个子类 Dog 所以我想说 var Dog fu
  • 如何通过单击链接来更改 div 的内容?

    这是我的网页的 修改后的 jsfiddle 它还有很多 而且定位是正确的 与此相反 http jsfiddle net ry0tec3p 1 http jsfiddle net ry0tec3p 1 a href class btn1 st
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • 计算三次贝塞尔曲线的弧长、曲线长度。为什么不工作?

    我正在用这个算法计算弧长 三次贝塞尔曲线的长度 function getArcLength path var STEPS 1000 gt precision var t 1 STEPS var aX 0 var aY 0 var bX 0
  • 如何计算特定字符在字符串中出现的次数

    我正在尝试创建一个函数来查看数组中的任何字符是否在字符串中 如果是 有多少个 我尝试计算每一种模式 但是太多了 我尝试使用 Python 中的 in 运算符的替代方案 但效果不佳 function calc fit element var
  • 使用 Google 日历源时如何禁用 FullCalendar 中的活动链接?

    我正在使用 FullCalendar 库从 Google 日历加载日历中的事件 不幸的是 事件添加到日历后 它们是可点击的 当您点击该活动时 您会自动重定向到 Google 日历页面以查看该特定活动 或者如果您有足够的访问权限 则可以直接对
  • Node.js 中的异步或步骤

    我无法让我的异步代码与 node js 一起使用 尝试异步和步骤库 代码仅返回第一个函数 似乎没有执行其余函数 我究竟做错了什么 thanks var step require step step function f1 console l
  • 使用 Javascript 设置 cookie [重复]

    这个问题在这里已经有答案了 我正在尝试构建我的第一个移动应用程序 它需要连接到我的 mysql 数据库并使用 json 返回数据 这很好 目前我有一个登录系统 一旦确定用户名和密码存在 它就会返回一条成功消息 对于下一步 我想在我的页面上使
  • Highcharts jQuery 渲染问题 - 所有浏览器

    我在尝试使用构建堆积柱形图时遇到了一个奇怪的问题高图表 http www highcharts com 当图表呈现时 在您调整浏览器大小之前 不会显示列无论如何 导致图表重绘 我认为 图表的其余部分显示 轴 标题等 但不显示列本身 我在 I
  • 什么是 WKWebView 中的 WKErrorDomain 错误 4

    fatal error LPWebView encounters an error Error Domain WKErrorDomain Code 4 A JavaScript exception occurred UserInfo 0x7
  • "message": "ENOENT: 没有这样的文件或目录,打开 'E:\\astrology\\utils\\uploads\\1600798534862qf.png'"

    正如标题所示 我得到error message ENOENT no such file or directory open E astrology utils uploads 1600798534862qf png 在我的项目中 即使在通过
  • 使用velocity.js制作可拖动元素的动画

    我正在使用velocity js 为用户拖动的可拖动 SVG 元素设置动画 然而 velocity js 将先前的 mousemove 坐标排队并通过所有后续的 mousemove 坐标进行动画处理 我想要的是velocity js 不要对

随机推荐

  • onSharedPreferenceChanged 不会一直触发

    我对这个方法有一个奇怪的问题 当我编辑 EditTextPreference 时 仅当我更改值时才调用它 而在 MultiSelectListPreference 上 仅当我第一次更改时才调用它 这是我的片段代码 public class
  • Excel 解算器具有非相邻单元格约束?

    我是 Excel 求解器的新手 只是在拿起一本数据科学书籍后才了解它 我想更熟悉这个工具 所以我一直在尝试解决不同的问题 但我被困在一个问题上 我什至不确定是否可以使用求解器 基本上 我需要检查的约束是两个单元格是否相邻 我的问题 我有一堆
  • 在 Excel 中计算唯一值

    我需要在 Excel 中计算范围 C2 C2080 中的唯一值 谷歌搜索公式 SUM IF FREQUENCY MATCH C2 C2080 C2 C2080 0 MATCH C2 C280 C2 C2080 0 gt 0 1 返回不正确的
  • 使用多层 - KineticJS

    我正在使用 KineticJS 4 0 5 目前正在尝试绘制几个图层的内容 但只绘制了添加到舞台的最后一个图层 如果我正确理解了文档 这应该是可能的 否则我们为什么需要一层 我有三个不同的层 仅包含 Kinetic Rect 对象的背景层
  • MPANDROIDCHART:如何使用 .setViewPortOffsets(0,0,0,0) 绘制 X 标签

    当我的图表已将 setViewPortOffsets 设置为 0 0 0 0 时 我在绘制 X 标签时遇到问题 我知道 setViewPortOffsets 的作用 但我不知道如何设置它以仅使左右边距消失边 有人能帮助我吗 PS 抱歉我的英
  • 逐行修改csv文件

    我有一个大文件 我想修改其中的每一行 我想使用 PHP 快速完成 我的文件是 CSV 文件 20010103 02 00 00 0 9496 20010103 03 00 00 0 9504 20010103 04 00 00 0 9499
  • 有没有办法观察 UIViewPropertyAnimator 中fractionComplete的变化

    我一直在看非常酷的新作品UIViewPropertyAnimatoriOS 10 中的类 它可以让你easily执行诸如暂停 恢复和反转飞行中 UIView 动画之类的操作 过去 您必须操作系统创建的底层 CAAnimations 才能对
  • Android BroadcastReceiver还是简单的回调方法?

    在我的项目中我正在使用BroadcastReceiver作为来自长时间运行的线程的回调 例如 通知活动下载已完成并从 Worker 发送一些响应数据Thread以便活动可以向用户显示适当的消息 使用BroadcastReceiver每次使用
  • :: C++ 中模板函数调用前面的范围解析运算符

    我被模板和范围解析运算符困住了 我在文件中找到了这些行 我无法弄清楚为什么我们在模板函数调用前面使用 据我所知 当引用全局变量时 我们只能在变量前面使用 任何想法都会有帮助 define CREATE AND DECODE TYPE Typ
  • 如何用绝对路径 URL 替换相对路径 URL

    我将 HTML 内容存储在数据库中 并且希望将所有相对资源引用转换为使用绝对路径 例如 我的所有图像标签看起来都是这样的 img src 我正在尝试前置 http example com to the system images 小路 我有
  • 获取物体的位置,最多精确到小数点后 3 位

    我通过单击鼠标来实例化一个对象 我需要将变换位置 x 和 y 保留到小数点后 3 位 这是我的代码 void OnMouseDown ray Camera main ScreenPointToRay Input mousePosition
  • 创建一个独立于顺序自动创建新组的函数

    I asked 这个问题 https stackoverflow com questions 73894399 creating new groups when the original groups do not have suffici
  • 折叠表达式的结合性

    N4191 http www open std org jtc1 sc22 wg21 docs papers 2014 n4191 html建议的 C 折叠表达式 那里的定义是 args 是左折 即 a0 a1 a2 然后 args 是右折
  • 是否可以使用 Dropbox 托管一个裸 Git 存储库来共享代码?

    我意识到有类似的问题 https stackoverflow com questions 1960799 using gitdropbox together effectively 但我的问题略有不同 我想知道是否共享裸存储库通过多台计算机
  • 如何在asp.net c#中仅获取不包括时间的日期

    如何在asp net c 中仅获取不包括时间的日期 我只想将日期作为搜索输入 例如 3 11 2013 您可以使用日期时间 日期 http msdn microsoft com en us library system datetime d
  • 等待运算符没有像我预期的那样等待

    我正在上课DelayedExecutor这将延迟执行Action传递给其DelayExecute方法按一定时间timeout 参见下面的代码 使用 async 和await 语句 我还希望能够中止执行timeout如果需要的话间隔 我编写了
  • 为什么 URL up ​​时会出现“java.net.ConnectException: Connection timed out”异常?

    我得到了一个ConnectException Connection timed out我的代码中有一定频率 我试图访问的 URL 已打开 相同的代码适用于某些用户 但不适用于其他用户 似乎一旦一个用户开始收到此异常 他们就会继续收到该异常
  • “未加载模块 MyLibrary.dll 的符号”?

    我正在尝试通过制作一个提供有关 Pokemon 信息的基本应用程序来学习 Windows Phone 开发 为此 我创建了一个可移植类库 PokeLib dll 以便它与通用应用程序兼容 我已经通过同一解决方案 测试 中的项目对此进行了测试
  • 为什么使用 IKernel 而不是 IWindsorContainer?

    我在几个代码示例中看到人们使用过IKernel而不是使用IWindsorContainer 为什么是这样 这是一个例子 http docs castleproject org S kwaa14uzdj55gv55dzgf0vui Winds
  • 在 Nodejs 中解析嵌套 JSON

    我一直在尝试解析嵌套的 JSON 数据 下面是我的代码 var string key1 value key2 value1 Key3 key31 value 31 var obj JSON parse string console log