Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何以JSON格式表示数据?_Java_Json - Fatal编程技术网

Java 如何以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,

我这里有一个非常基本的问题。我试图用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, 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的回答。