【发布时间】:2014-08-04 04:21:00
【问题描述】:
你好(对不起我的英语)
我正在开发使用 SPRING MVC 生成 json 的 web 服务的 angularjs 前端网站。 spring mvc 使用 JsonIdentityInfo 选项进行序列化,因此每个对象只在 json 中写入一次,并且每次使用引用,例如她有 2 台“计算机”使用相同的对象“组件”,所以 spring 将 id 放入第一个组件 ("@componentID": 2) 和第二个组件的 id (2) :
[
{
"@computerID": 1,
"component": {
"@componentID": 2,
"processor": 2,
"ram": "8g",
"harddrive": "wd"
}
},
{
"@computerID": 3,
"component": 2
}
]
我想要什么:
[
{
"@computerID": 1,
"owner" : "Mister B",
"component": {
"@componentID": 2,
"processor": 2,
"ram": "8g",
"harddrive": "wd"
}
},
{
"@computerID": 3,
"owner" : "Mister A",
"component": {
"@componentID": 2,
"processor": 2,
"ram": "8g",
"harddrive": "wd"
}
}
]
我多次搜索执行此操作的代码,但我没有找到任何想法。
我无法编辑用于删除此行为的 Web 服务。我可以使用 javascript 或 jquery(或其他库)在客户端编辑 json 以用真正的引用对象替换引用吗? (数据实际上更复杂更深,我在对象中有3级子对象)。
非常感谢。
【问题讨论】:
-
您尝试过我的解决方案了吗?这是我在小提琴中回答的代码:jsfiddle.net/rodgolpe/5e7Vn/2
-
Edit你好。非常感谢您的帮助。我尝试了它并适用于第一个示例;)但我正在尝试根据我的实际用例调整您的解决方案。我得到了像这样的更复杂的数据:pastebin.com/Jk2eNbLK 我引用的对象可以是标本、媒体集、测定、分类单元、recolte、本地化、地层。我尝试将当前对象的名称与之前的列表进行比较,如果它是引用,我使用 getObjects 返回好的内容,然后用好的内容替换引用。
-
-1 用于发布错误的样本数据,让我优雅地解决这个问题,并继续与您合作解决问题,然后不给我积分!
-
你说得对,我应该在第一时间发布好的数据,对不起。谢谢你所有的时间。我不知道积分是如何工作的。
-
如果我的回答解决了您最初的问题,您将我的回答标记为“接受”,我将获得积分。更重要的是,其他试图解决类似问题的人会看到它已经被回答,并且可能会发现我的回答(和我们的讨论)很有用。
标签: javascript json spring angularjs jsonidentityinfo