JSON:在另一个JSON对象中重复使用JSON对象

4
考虑以下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 文件的一部分。


4
你手头的并不是一个 JSON 对象,而是通过对象字面量语法定义的对象;http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/ - Matt
JSON不支持引用,请尝试使用YAML或XML。 - Esailija
@Esailija: 不,严格来说是 JSON。 - Vineeth Pradhan
1个回答

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”中,第二个对象(不带“options”)在“selectobj”中,您只需要
selectobj.options=jsonobj;

或者

selectobj.options=jsonobj.dropdown_options;

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

1
你可能还想看一下 var selectobj={"select" : {"id" : "message_carriers", "options" : jsonobj.dropdown_options}},以避免不必要的深度。 - Eugen Rieck
我忘了提到问题中的代码示例是在 .json 文件中。因此不能像你在答案中提到的那样使用变量。 - Vineeth Pradhan
谢谢更新。但是我需要的是在不需要操作单独的JavaScript文件中的JSON定义的情况下,从.JSON文件内部引用"JSON对象"。 - Vineeth Pradhan
1
这是不可能的。没有机制可以提供.json文件内容和读取代码范围内变量之间的链接。最简单的方法应该是将文件读入字符串,将其转换为JS对象,然后进行操作:这使您有可能钩入自己制作的“特殊字符串”。 - Eugen Rieck
好的。是的,我知道我可以使用JavaScript来完成这个任务。我只是希望能够有一种解决方案,类似于在同一文件中引用其他定义的YAML方式。无论如何,非常感谢您的努力,@Eugen。 - Vineeth Pradhan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接