Java 如何以JSON格式表示数据?
我这里有一个非常基本的问题。我试图用JSON格式表示下面的数据Java 如何以JSON格式表示数据?,java,json,Java,Json,我这里有一个非常基本的问题。我试图用JSON格式表示下面的数据 haschanged=true version=1 timestamp=1390561121310 DATACENTER=/pr/hello/plc TotalNumberOfServers:4 primary:{0=1, 1=2, 2=1, 3=2, 4=1, 5=2, 6=1, 7=2, 8=1, 9=2, 10=1, 11=2, 12=1, 13=2} secondary:{0=0, 1=0, 2=0,
haschanged=true
version=1
timestamp=1390561121310
DATACENTER=/pr/hello/plc
TotalNumberOfServers:4
primary:{0=1, 1=2, 2=1, 3=2, 4=1, 5=2, 6=1, 7=2, 8=1, 9=2, 10=1, 11=2, 12=1, 13=2}
secondary:{0=0, 1=0, 2=0, 3=1, 4=0, 5=0, 6=0, 7=1, 8=0, 9=0, 10=0, 11=1, 12=0, 13=0}
hosttomachine:{3=plcdbx1115.plc.domain.com, 2=plcdbx1114.plc.domain.com, 1=plcdbx1113.plc.domain.com, 4=plcdbx1116.plc.domain.com}
DATACENTER=/pr/hello/pty
TotalNumberOfServers:2
primary:{0=1, 1=2, 2=1, 3=2, 4=1, 5=2, 6=1, 7=2, 8=1, 9=2, 10=1, 11=2, 12=1, 13=2, 14=1}
secondary:{0=0, 1=0, 2=0, 3=1, 4=0, 5=0, 6=0, 7=1, 8=0, 9=0, 10=0, 11=1, 12=0, 13=0, 14=0}
hosttomachine:{1=ptydbx1145.pty.domain.com, 4=ptydbx1148.pty.domain.com}
我无法理解如何以JSON格式表示上述数据。这是我尝试过的,但不确定这是否正确
{
"haschanged": "true",
"version": "1",
"timestamp": "1390561121310",
"/pr/hello/plc":
{
// not sure what should I do next?
},
"/pr/hello/pty":
{
// not sure what should I do next?
}
}
你可以这样使用
对键值对使用“”
编辑:我只在数据中心键中放置了一项。您可以自己做另一项
{
"haschanged":true,
"version":1,
"timestamp":1390561121310,
"DATACENTER":[
{
"name":"/pr/hello/plc",
"TotalNumberOfServers":4,
"primary":[
{
"0":"1"
},
{
"1":"2"
},
{
"2":"1"
},
{
"3":"2"
},
{
"4":"1"
},
{
"5":"2"
},
{
"6":"1"
},
{
"7":"2"
},
{
"8":"1"
},
{
"9":"2"
},
{
"10":"1"
},
{
"11":"2"
},
{
"12":"1"
},
{
"13":"2"
}
],
"secondary":[
{
"0":"0"
},
{
"1":"0"
},
{
"2":"0"
},
{
"3":"1"
},
{
"4":"0"
},
{
"5":"0"
},
{
"6":"0"
},
{
"7":"1"
},
{
"8":"0"
},
{
"9":"0"
},
{
"10":"0"
},
{
"11":"1"
},
{
"12":"0"
},
{
"13":"0"
}
],
"hosttomachine":[
{
"3":"plcdbx1115.plc.domain.com"
},
{
"2":"plcdbx1114.plc.domain.com"
},
{
"1":"plcdbx1113.plc.domain.com"
},
{
"4":"plcdbx1116.plc.domain.com"
}
]
}
]
}
使用数据中心列表,您就可以开始了 以下是我们如何做到这一点:
{
"haschanged": "true",
"version": "1",
"timestamp": "1390561121310",
"DATACENTER" = [
{ "name" : "/pr/hello/plc",
"TotalNumberOfServers": 4,
"primary": { 0=1, 1=2, 2=1, 3=2, 4=1, 5=2, 6=1, 7=2, 8=1, 9=2, 10=1, 11=2, 12=1, 13=2},
"secondary": { 0=0, 1=0, 2=0, 3=1, 4=0, 5=0, 6=0, 7=1, 8=0, 9=0, 10=0, 11=1, 12=0, 13=0},
"hosttomachine": { 3=plcdbx1115.plc.domain.com, 2=plcdbx1114.plc.domain.com, 1=plcdbx1113.plc.domain.com, 4=plcdbx1116.plc.domain.com}"
},
{ "name": "/pr/hello/pty",
"TotalNumberOfServers": 2,
"primary": { 0=1, 1=2, 2=1, 3=2, 4=1, 5=2, 6=1, 7=2, 8=1, 9=2, 10=1, 11=2, 12=1, 13=2, 14=1},
"secondary": { 0=0, 1=0, 2=0, 3=1, 4=0, 5=0, 6=0, 7=1, 8=0, 9=0, 10=0, 11=1, 12=0, 13=0, 14=0},
"hosttomachine": { 1=ptydbx1145.pty.domain.com, 4=ptydbx1148.pty.domain.com}
}
]
}
您可能希望将数据中心表示为数组。
“数据中心”:[{“名称”:“/pr/hello/pty”,…},{“名称”:“/pr/hello/plc”,…}]
是的,我想你是对的。你能提供一个我如何做到这一点的例子吗?我很困惑。谢谢。我刚刚尝试验证了这个JSON。它给出了一个异常-第8行的解析错误:…ary:{0=1,1=2-----------------------------^应该是字符串,'}'
。有什么问题吗?现在它是有效的,我已经将数据中心属性连接到数组。因为存在多个数据中心属性,所以您的json是错误的。主、辅、主机部件必须是数组,数组值必须是键值对。是的,谢谢你指出这一点。我刚刚发现主计算机、辅助计算机和主机应该是键值对数组。请参阅@HüseyinBABAL的回答。