如何在json中声明两个数组?

Posted

技术标签:

【中文标题】如何在json中声明两个数组?【英文标题】:how to declare two arrays in json? 【发布时间】:2013-02-06 06:08:02 【问题描述】:

我想为我的 Web 应用程序创建一个 json 字符串。实际上我是这种 json 格式的新手。在我的 json 字符串中,我必须在我的 json 结构中创建两个数组。但是我在创建两个数组时遇到了一些语法问题。下面给出我的json字符串供您参考。


    MarkUpdate:[
        
            'FinalMarks':[
            
                'studentId':'S1',
                'Ques_Mark':[
                
                    'qId' :'Q1',
                    'mark':'14',                
                ,
                
                    'qId':'Q2',
                    'mark':'10',                
                
                ]
            ,          
            
                'studentId':'S2',
                'Ques_Mark':[
                
                    'qId' :'Q1',
                    'mark':'12',                
                ,
                
                    'qId':'Q2',
                    'mark':'13',                
                               
                ]
            
            ]
                   
        ]
    

在我上面的json字符串格式中,我的MarkUpdate包含一个名为FinalMarks的数组对象。所以,我必须在MarkUpdate下再创建一个名为EvalMarks的数组对象。

其实我的EvalMarks 包含以下元素...

'EvalMarks':[
            
                'EvalId':'E1',
                'Ques_Mark':[
                
                    'qId'   :'Q1',
                    'studId':'S1',  
                    'mark':'13',                
                ,
                
                    'qId':'Q2',
                    'studId':'S1',  
                    'mark':'13',                                    
                                   
                ]
            ,

            
                'EvalId':'E2',
                'Ques_Mark':[
                
                    'qId'   :'Q1',
                    'studId':'S2',  
                    'mark':'10',                
                ,
                
                    'qId':'Q2',
                    'studId':'S2',  
                    'mark':'10',                                    
                
                ]
            
            ]

所以,我在MarkUpdate 下声明了这个EvalMarks。我错过了语法...

请告诉我如何在MarkUpdate 下添加这个数组对象。

引导我摆脱这个问题...

【问题讨论】:

["stash", 2, "json", "objects": ["in", "here"] , "用逗号分隔", ["except", "for", "最后一个条目"]];请澄清您的问题。 【参考方案1】:

要在一个 JSON 对象中声明两个数组,请记住 JSON 对象只能是一个对象,因此该数组必须位于大括号内。例如:


  "array1":[1,2,3],
  "array2":["jim","louise","mark"]

对于您的情况,重要的是要记住您应该正确缩进您的大括号,方括号和卷曲,以便您可以在错误成为问题之前直观地识别错误。我强烈建议http://jslint.com/ 在使用它之前验证您的 JSON。它也非常适合 javascript


    "MarkUpdate":[
        
            "FinalMarks":[
                
                    "studentId":"S1",
                    "Ques_Mark":[
                        
                            "qId" :"Q1",
                            "mark":"14"
                        ,
                        
                            "qId":"Q2",
                            "mark":"10"
                        
                    ]
                ,
                
                    "studentId":"S2",
                    "Ques_Mark":[
                        
                            "qId" :"Q1",
                            "mark":"12"
                        ,
                        
                            "qId":"Q2",
                            "mark":"13"
                        
                    ]
                
            ]
        
    ],
    "EvalMarks":[
        
            "EvalId":"E1",
            "Ques_Mark":[
                
                    "qId"   :"Q1",
                    "studId":"S1",
                    "mark":"13"
                ,
                
                    "qId":"Q2",
                    "studId":"S1",
                    "mark":"13"
                
            ]
        ,

        
            "EvalId":"E2",
            "Ques_Mark":[
                
                    "qId"   :"Q1",
                    "studId":"S2",
                    "mark":"10"
                ,
                
                    "qId":"Q2",
                    "studId":"S2",
                    "mark":"10"
                
            ]
        
    ]

【讨论】:

【参考方案2】:

如果对象中最后一个键值对后有逗号,则它不是有效的 JSON。我将首先在大多数对象中的最后一个键值对之后删除所有那些不必要的逗号,并验证 www.jslint.com 中的 JSON

为了更清楚,


    "qId":"Q2",
    "studId":"S2",  
    "mark":"10",                                    

无效。 另一方面,


    "qId":"Q2",
    "studId":"S2",  
    "mark":"10"                                   

有效。

【讨论】:

以上是关于如何在json中声明两个数组?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 BigQuery 标准 SQL 中取消嵌套多个数组

如何在方法中声明数组[重复]

JMeter json路径在响应中声明json或数组

如何声明和使用来自 json 对象的函数名?

如何初始化在结构中声明的数组?

如何在 Zoho CRM Deluge 脚本中使用 for each 循环遍历 JSON 数组