如何将嵌入的 JSON 扁平化为多个文档

2023-12-07

考虑以下 JSON:

{
    "Company" : "ABC Company",
    "Place"   : {
                   "Bangalore" :{ 
                                    "Address" : "MG Road",  
                                    "Phone"   : ["988888","888866","365656"]
                                },
                   "Mubmai" :   { 
                                    "Address" : "1st Main Road,West",  
                                    "Phone"   : ["21212","123123","544455"]
                                }
                }
}

现在我想扁平化 JSON,以便获得多个 JSON。对于上面的示例,扁平化输出如下:

{
    "Company" : "ABC Company",
    "Place"   : "Bangalore",
    "Address" : "MG Road",
    "Phone"   : "988888"
},    
{
    "Company" : "ABC Company",
    "Place"   : "Bangalore",
    "Address" : "MG Road",
    "Phone"   : "888866"
},    
{
    "Company" : "ABC Company",
    "Place"   : "Bangalore",
    "Address" : "MG Road",
    "Phone"   : "365656"
},    
{
    "Company" : "ABC Company",
    "Place"   : "Mubmai",
    "Address" : "1st Main Road,West",
    "Phone"   : "21212"
},    
{
    "Company" : "ABC Company",
    "Place"   : "Mubmai",
    "Address" : "1st Main Road,West",
    "Phone"   : "123123"
},    
{
    "Company" : "ABC Company",
    "Place"   : "Mubmai",
    "Address" : "1st Main Road,West",
    "Phone"   : "544455"
}

JSON 结构不是固定的,它往往会发生变化,但扁平化仍然必须以相同的方式工作。 Node.js 有什么办法可以做到这一点吗?


就这样吧:(jsb)

var t = [];
for (p in a.Place)
{
    var _=a.Place[p]["Phone"];
    for (i = 0; i < _.length; i++)
    {
        var g = {
                  Company: a.Company,
                  Place: p,
                  Address: a.Place[p]["Address"]
                };
        g.Phone = _[i];
        t.push(g)
    }
}

enter image description here

如果你添加

console.log(JSON.stringify(t)

你会得到这个

    [{"Company":"ABC Company","Place":"Bangalore","Address":"MG Road","Phone":"988888"},{"Company":"ABC Company","Place":"Bangalore","Address":"MG Road","Phone":"888866"},{"Company":"ABC Company","Place":"Bangalore","Address":"MG Road","Phone":"365656"},{"Company":"ABC Company","Place":"Mubmai","Address":"1st Main Road,West","Phone":"21212"},{"Company":"ABC Company","Place":"Mubmai","Address":"1st Main Road,West","Phone":"123123"},{"Company":"ABC 
Company","Place":"Mubmai","Address":"1st Main Road,West","Phone":"544455"}] 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将嵌入的 JSON 扁平化为多个文档 的相关文章

  • 如何使用 html 标签包装 window.getSelection().getRangeAt(0) 中的文本选择?

    如何从 window getSelection getRangeAt 0 中进行选择并用 HTML 标签 例如 span 或 mark 包围它 我更喜欢直接的 javascript 或 jQuery 解决方案 我可以使用警报输出选定的文本
  • 使用核心 Node.js 进行会话管理,无需 Express.js

    如何在核心 Node js 非express js 项目中处理 创建用于服务器端会话管理的中间件 我可以找到基于 Express 的项目的模块 但不能找到核心 Node js 的模块 请向我推荐任何用于非express js 项目的模块或中
  • RSA Java 加密和 Node.js 解密不起作用

    我有一个系统 需要在 javascript 中生成 RSA 密钥对 然后将公钥存储在服务器端的数据库中 作为字符串 然后 Java 中的服务器端将使用存储的公钥对字符串进行加密密钥并将其发送到客户端 客户端将使用私钥解密该字符串 我在客户端
  • Bootstrap 页脚不在底部

    我试图强制我的页脚位于网站底部 我不希望它在滚动时粘住 只是在向下滚动网页时出现在底部 目前 网页显示时页脚位于内容下方 我添加了这样的代码bottom 0 并发现它粘住了并且不适合我的网站 我还添加了这样的代码html body heig
  • 使用 mongoDB 插入子文档

    我收集了以下文件 id 2 workspace name 1 widgets name 2 widgets name 3 widgets name 4 widgets 我怎样才能插入 id 1 blabla blabla 在 小部件 中的
  • 如何在改造中在主体内传递 JSON 数组

    intent sale redirect urls return url http example com your redirect url html cancel url http example com your cancel url
  • 同心放射圆 d3

    我有一个等距值的数组 我用它来绘制同心圆 我想使用一种散发效果 本质上是 一旦最外面的圆的值超过最大值 就将其删除 并在中心添加一个新的圆来补偿 我不确定如何操作数据集来删除和添加新圆圈
  • 将jQueryUI datepicker附加到div(显示位置错误)

    我在输入上使用 jQueryUI datepicker 默认情况下 jQueryUI 会附加 ui datepicker div to the body该文件的 有问题的输入位于屏幕上的 弹出 div 中 这意味着该 div 之外的任何点击
  • Angular 4 - 具有动态参数值的自定义验证器

    我编写了一个自定义验证器 用于检查日期是否高于某个最小日期 代码如下所示 export function validateMinDate min Date ValidatorFn return c AbstractControl gt if
  • GraphQL 错误字段类型必须是输入类型,但得到:

    这是突变 const createNotebook mutationWithClientMutationId name CreateNotebook inputFields token type GraphQLString details
  • jQuery onclick 隐藏其父元素[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想隐藏 li tag on a 使
  • 重复 Pinterest Facebook 邀请功能

    I m trying to duplicate Pinterest s Invite Friends functionality In case you haven t seen what it looks like it looks li
  • 将“http://”添加到尚未包含“http://”的 URL 前面

    我有一个input保存 URL 的字段 我希望这个保存的输入能够识别变量开头不存在 Http 但不知道从哪里开始 是否可以仅检查字符串的一部分 然后有一个在必要时追加的函数 如果您还想允许 https 我会使用如下正则表达式 if http
  • LightningChart JS - LineSeries / Progressive X 的损坏

    我在使用 LightningChart 时遇到了一个有趣的问题 它似乎会破坏或以其他方式减少我的数据 具体取决于它与图表的 DateOrigin 的距离 我的数据是每秒 1000 个样本 我试图一次显示 1 2 周的数据 我正在使用 Cha
  • 抓取 Shopee API v4

    我有一个最终项目 其中我想要检索的数据是通过在shopee上抓取数据来获取的 但是当我在隐藏的API上抓取shopee时遇到问题 当我在Insomnia脚本上尝试时 脚本会运行 但是当我尝试时在本地或 google colab 脚本上 这是
  • 为什么我的数据没有存储到我的 Firebase 实时数据库中?

    我正在尝试为网络应用程序制作一个注册页面 这会将数据发送到 firebase 数据库 我已阅读官方 firebase 文档并按照说明写入数据 但什么也不会写 在我的数据库控制台中 它显示的所有内容都是空 而不是我的数据 我没有收到控制台错误
  • 多个引导模式的滚动问题

    我有一个带有大量信息的模态页面 因此您需要滚动 该模式包含指向第二个模式的链接 When I 打开模态 1 单击链接打开模式 2 模式 1 保持在后台 然后关闭模式 2 以便我回到模式 1 modal 1 失去滚动 仍然有一个滚动条 但它不
  • 将json数据从servlet传递到jsp到js文件

    我得到了这个创建 JSON 数据的 servlet 我想将此数据传递到一个 jsp 页面 该页面应该通过 InfoVis 工具包显示数据 servlet java JSONObject json new JSONObject JSONArr
  • 如何从索引文件迭代多个导入的模块

    我有一个名为Polygons我在那里创建了一个index jsfile 以导出目录中的所有文件 它看起来像这样 export default as europe from europe export default as northAmer
  • 如何使用 jQuery 解析 JavaScript 对象

    jQuery JavaScript 中用于解析 JSON 对象并返回键 值对的 foreach 等效项是什么 JSON 对象 是什么意思 JSON 是一种用于序列化对象的文本格式 如果要循环访问通过反序列化 JSON 字符串获得的对象中的属

随机推荐

  • Java 8 原始流到集合的映射方法

    这两种流创建方法之间是否存在显着差异 在性能或最佳实践方面 int arr2 1 2 3 4 5 6 Arrays stream arr2 map in gt in 2 mapToObj in gt new Integer in colle
  • “原始字符串正则表达式”到底是什么以及如何使用它?

    来自 python 文档regex 关于 特点 解决方案是使用 Python 的原始字符串表示法来表示正则 表达模式 反斜杠不会以任何特殊方式处理 前缀为的字符串文字 r So r n 是一个两个字符的字符串 含有 and n while
  • p:graphicImage 的替代方案,它可以显示来自 byte[] 的图像并控制浏览器缓存

    似乎有一个错误p graphicimage使用更新功能时 通过加载一张图像value myController myStreamedContent 有效 但是当改变时myController myStreamedContent随后更新p g
  • CUDA 可以解决许多“小型/中型”线性系统

    关于我尝试使用 CUDA 加速的问题的一些背景信息 我有大量小型 中型相同尺寸的线性系统需要独立求解 每个线性系统都是方形的 实数的 稠密的 可逆的和非对称的 这些实际上是矩阵系统 因此每个系统看起来都像 AX B 其中 A X 和 B 是
  • 浏览器后退按钮不会清除旧的后备 bean 值

    我们使用 JSF2 我们有一个带有表单字段的页面 其中命令按钮链接到支持 bean 当我们访问表单页面 输入值并提交时 支持 bean 会收到正确的值并将其带到下一页 如果我按浏览器中的后退按钮 它将转到带有表单的上一页 如果我在表单中输入
  • 如何实现通用的max函数?

    我知道这是因为模板函数的返回类型与第一个参数 T 的返回类型相同 如何修改此模板 使其在所有情况下都能正确运行 include
  • EventEmitter类的清晰概念

    代码写入子组件 mycomponent ts import Component OnInit EventEmitter Output from angular core Component selector app mycomponent
  • 将 shell 变量传递给 JSON 请求以进行curl?

    让我们看下面的例子 curl i X POST H Content Type application json d jsonrpc 2 0 method Player Open params item false http example
  • 排序多维数组javascript

    我想对双精度的多维数组进行排序 该数组如下所示 1 2 2 3 5 6 8 9 我想按 X 值对其进行排序 并保持 x y 值配对 我在网站上搜索了多维排序 发现了类似的帖子these其中排序函数修改如下 location sort fun
  • 如何检查字符串是否可以转换为浮点数?

    首先 我的背景是需要将浮点文字 字符串 转换为浮点 双精度值的编译器编写者 过去 15 年我没有做过任何浮点编程 所以我很确定这是一个完全愚蠢的新手问题 double res errno 0 res strtod const char li
  • 如何设置TabHost背景颜色

    我需要帮助 我发现在 TabHost 中更改背景颜色很困难 原图 我需要修改背景颜色 如下图所示 我也在我的代码和 XML 中尝试了很多东西 但都失败了 我的代码如下 TabHost tabHost getTabHost Tab 1 Tab
  • 如何在C++中设置文件权限(跨平台)?

    我正在使用 C ofstream写出一个文件 我想将权限设置为只能由用户访问 700 在unix中 我想我可以发出一个system chmod 700 file txt 但我需要这段代码也能在 Windows 上运行 我可以使用一些Wind
  • 如何使用Robot Framework处理提示框?

    我使用 Robot Framework 和 Selenium2Library 进行网站测试自动化 在其中一种情况下 会出现一个提示框 类似于警报的弹出窗口 但其中有一个输入字段 请参阅例子在这里 要求一些文字 问题是 Robot Frame
  • FileSystemWatcher Changed 事件引发两次

    我有一个应用程序 我正在寻找一个文本文件 如果对该文件进行了任何更改 我正在使用OnChanged事件处理程序来处理事件 我正在使用NotifyFilters LastWriteTime但该事件仍然被解雇两次 这是代码 public voi
  • Java IOException - 流已关闭

    I get IOException 流已关闭 当我运行这个程序时 文本包含许多行数据 程序应该读取每一行 执行必要的功能并将输出写入新文件 我很困惑应该先关闭哪个作家以及在哪里 import java net import java io
  • 将键放在 gnuplot 中的多图下方

    正如标题所示 我想将图例放在多图下方 我只为其中一张图添加图例 因为所有图的线条样式都相同 我遇到的问题是 如果我添加密钥set key below 绘图本身会调整大小以适合画布内的 大 键 我宁愿保持地块的大小 我尝试将密钥添加为多图中的
  • 函数 .C -- 参数设置编译失败

    我目前正在学习在 R 中调用编译的 C 代码 昨天 我为无限 pi 系列创建了一个函数 当在 R 中运行时 它返回一个长度为 1 的数字向量 pi 效果很好 今天我正在研究一个输出可变长度数值向量的函数 即为用户定义的斐波那契序列计算的n
  • 调整最后一行的弹性项目的大小

    我的问题是我想要具有可变范围宽度的弹性盒 并且一切正常 但不是在最后一行 我希望所有子项都具有相同的维度 即使该行未充满子项 最后一行 products list position relative display flex flex fl
  • 不可能制作一个有大小限制的缓存线程池吗?

    似乎不可能创建一个限制其可以创建的线程数量的缓存线程池 这是静态的Executors newCachedThreadPool在标准Java库中实现 public static ExecutorService newCachedThreadP
  • 如何将嵌入的 JSON 扁平化为多个文档

    考虑以下 JSON Company ABC Company Place Bangalore Address MG Road Phone 988888 888866 365656 Mubmai Address 1st