Json的意外行为

时间:2015-08-01 05:19:59

标签: javascript jquery json

我正在尝试创建一个Json,其中一个问题有价值,选项,还包含多个问题。这些子问题也可以包含多个子问题。

这是我的Json字符串

   {
  "Questions": {
    "question": {
      "Value": " Quest 1",
      "Option": " Quest 1 Option",
      "question": {
        "Value": " Quest 2",
        "Option": " Quest 2 Option"
      },
      "question": {
        "Value": " Quest 3",
        "Option": " Quest 3 Option",
        "question": {
          "Value": " Quest 4",
          "Option": " Quest 4 Option",
          "question": {
            "Value": " Quest 5",
            "Option": " Quest 5 Option"
          },
          "question": {
            "Value": " Quest 6",
            "Option": " Quest 6 Option"
          }
        }
      }
    }
  }
}

但是当我试图在Json Viewer中看到它时,问题2和问题5丢失了。 我在这里做错了什么?

3 个答案:

答案 0 :(得分:0)

您的JSON在此处显示为有效,但我认为您的结构并非完全符合您的预期:

http://jsonformatter.curiousconcept.com/

您可能需要考虑制作"问题"一系列对象,看起来好像会更清洁。

例如,我觉得这更具可读性:

{
    "Questions": [
        {
            "Value": " Quest 1",
            "Option": " Quest 1 Option",
            "questions": [
                {
                    "Value": " Quest 2",
                    "Option": " Quest 2 Option"
                }
            ]
        },        
        {
            "Value": " Quest 3",
            "Option": " Quest 3 Option",
            "questions": [
                {
                    "Value": " Quest 4",
                    "Option": " Quest 4 Option",
                    "questions": [
                        {
                            "Value": " Quest 5",
                            "Option": " Quest 5 Option"
                        }
                    ]
                },
                {
                    "Value": " Quest 6",
                    "Option": " Quest 6 Option"
                }
            ]
        }
    ]
}

答案 1 :(得分:0)

我认为您正在寻找一种数组语法,如下所示:

{"Questions":[
    {"question":{"Value":" Quest 1 "}},
    {"question":{"Value":" Quest 2 "}}
]}

注意表示数组的方括号。

答案 2 :(得分:0)

您在同一个对象上有多个键...

每个都有两个:
Questions.question.question和
Questions.question.question.question

对象就像一个字典,每个对象中只能有一个唯一命名的键。您可能需要考虑使用数组。