问题描述
我在 spring 启动时有一个用 JavaScript 编写的客户端和一个用 Java 编写的服务器端。我的客户端中有以下 JSON 数组。
[
{
"names": [
{
"default": "somelink"
},{
"nr": "somelink"
},{
"pr": "somelink"
}
]
},{
"circle": [
{
"ID": [
{
"red": "someData"
}
]
},{
"ID2": [
{
"blue": "somedata"
}
]
}
]
},{
"square": [
{
"ID3": []
}
]
},{
"triangle": []
}
]
现在以下属性将始终固定在 JSON 数组中 - names,circle,square,triangle
。现在在我的应用程序中,您可以添加任何您喜欢的对象。因此,在此示例中,我们有两个圆圈 ID
和 ID2
,它们都附加了一些数据 (red and blue
)。我们有一个没有数据也没有三角形的正方形 ID3
。名称固定属性中的每个属性,圆形,方形和三角形都可以更改。
现在我想将它发送到 Java 中的服务器端,但我正在努力了解如何做到这一点,因为我的 JSON 不是静态的。谁能帮我吗?提前致谢
解决方法
您能否详细解释一下您努力查看 JSON 属性如何变化的含义?
乍一看,我可以看到通过以不同的方式构建 JSON 对象,您可以为自己节省大量工作:
对于主要属性(如(名称、圆形、正方形、三角形))的整个 JSON 对象,您可以使用以下内容代替创建具有数组值的对象:
{
"names": [...],"circle": [...],"square": [...],"triangle": [...]
}
对于“名称”属性,请考虑这样做:(最后这一切都取决于您将要存储在(默认值,nr, pr)
"names": {
"default": "somelink","nr": "somelink","pr": "somelink"
}
对于圆圈键:
代替:
"circle": [
{
"ID": [
{
"red": "someData"
}
]
},{
"ID2": [
{
"blue": "somedata"
}
]
}
]
你可以这样做:
"circle": {
"ID": [
{
"red": "someData"
}
],"ID2": [
{
"blue": "somedata"
}
]
}
因此,作为一个完整的对象,您可以将其结构如下:
{
"names": {
"default": "somelink","pr": "somelink"
},"circle": {
"ID": [
{
"red": "someData"
}
],"ID2": [
{
"blue": "somedata"
}
]
},"square": {
"ID3": []
},"triangle": []
}