【问题标题】:JSON: Reuse JSON object inside another JSON objectJSON:在另一个 JSON 对象中重用 JSON 对象
【发布时间】:2012-08-29 02:28:24
【问题描述】:

考虑一下这个 JSON 对象,它可以用作 HTML 中选择元素的选项数据:

{"dropdown_options" : [
          {"id" : "received", "title" : "Received", "value" : "received"},   
          {"id" : "approved", "title" : "Approved", "value" : "approved"}, 
          {"id" : "rejected", "title" : "Rejected", "value" : "rejected"}
]}

如何重用上述 JSON 对象来定义另一个 JSON 对象?
像这样的:

{"select" : {"id" : "message_carriers", "options" : "dropdown_options"}}

编辑:上面的代码示例是 .json 文件的一部分。

【问题讨论】:

标签: javascript json reusability code-reuse


【解决方案1】:

你的意思是

var jsonobj={"dropdown_options" : [{"id" : "received", "title" : "Received", "value" : "received"}, {"id" : "approved", "title" : "Approved", "value" : "approved"}, {"id" : "received", "title" : "Received", "value" : "received"}]};
var selectobj={"select" : {"id" : "message_carriers", "options" : jsonobj}}

请注意,在第二行中给出了变量名称 - 所以没有引号。

编辑

根据我的评论,JSON 对象是从文件创建的。所以,假设第一个对象在jsonobj 和第二个(没有“选项”)在selectobj,你只需要

selectobj.options=jsonobj;

selectobj.options=jsonobj.dropdown_options;

将它们链接在一起,而无需在主定义中使用变量。

【讨论】:

  • 有道理。我试试看
  • 您可能还想查看var selectobj={"select" : {"id" : "message_carriers", "options" : jsonobj.dropdown_options}} 以避免不必要的深度。
  • 我忘了提到问题中的上述代码示例在 .json 文件中。所以不能使用变量,就像你在回答中提到的那样
  • 感谢您的更新。但我需要的是从 .JSON 文件中引用“JSON 对象”,而无需在单独的 javascript 文件中操作 JSON 定义。
  • 这根本不可能。没有机制可以在 .json 文件的内容和 reding 代码范围内的变量之间提供链接。最简单的方法应该是将文件读入字符串,将其转换为 JS 对象,然后对其进行操作:这使您可以挂钩到自己制作的“特殊字符串”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-11
  • 2018-09-22
  • 2019-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多