我现在有一个JSON文件,它看起来如下(我去掉了很多重复的值,但是结构是相同的)。
    [{
"page" : {
    "currentPageNumber" : "page1",
    "pageTextLocation" : "\\Assets\\Stories\\Story 1\\Chapter1\\",
    "decision":[{
        "activeDecision" : true,
        "nextPage" : "Page2",
        },
        {
        "activeDecision" : true,
        "nextPage" : "Page2",
        },
        {
        "activeDecision" : true,
        "nextPage" : "Page2",
        }
    ]
    },
"page" : {
    "currentPageNumber" : "page2",
    "pageTextLocation" : "\\Assets\\Stories\\Story 2\\Chapter2\\",
    "decision":[{
        "activeDecision" : true,
        "nextPage" : "Page3",},
        {
        "activeDecision" : true,
        "nextPage" : "Page3",
        },
        {
        "activeDecision" : true,
        "nextPage" : "Page3",
        },
        {
        "activeDecision" : true,
        "nextPage" : "Page3",
        }]
    }}]我可以确认JSON文件的全文是否正确地加载到字符串值中。但是,当我将该值传递给JsonArray.Parse(loadedTextValue)时,返回值仅包括JSON文件中的最终数组。输出仅显示数组中的最后一个对象。如果有两个“页面”对象,它将只解析第二个对象。如果有三个“页面对象”,它将只解析第三个。
但是,如果我将键值名称"page“更改为唯一名称,解析器将检测所有代码并将其转换为可用的数组值。以下数据将完全加载到JsonArray值中。
            [{
"page" : {
    "currentPageNumber" : "page1",
    "pageTextLocation" : "\\Assets\\Stories\\Story 1\\Chapter1\\",
    "decision":[{
        "activeDecision" : true,
        "nextPage" : "Page2",
        },
        {
        "activeDecision" : true,
        "nextPage" : "Page2",
        },
        {
        "activeDecision" : true,
        "nextPage" : "Page2",
        }
    ]
    },
"page2" : {
    "currentPageNumber" : "page2",
    "pageTextLocation" : "\\Assets\\Stories\\Story 2\\Chapter2\\",
    "decision":[{
        "activeDecision" : true,
        "nextPage" : "Page3",},
        {
        "activeDecision" : true,
        "nextPage" : "Page3",
        },
        {
        "activeDecision" : true,
        "nextPage" : "Page3",
        },
        {
        "activeDecision" : true,
        "nextPage" : "Page3",
        }]
    }}]摘要:解析整个加载的文本文件,以便代码和迭代值,提取它。
我完全不知道这种行为的原因。如有任何意见,将不胜感激!谢谢!
发布于 2016-01-01 21:30:13
它不能工作,因为您有多个具有相同值的键。如果您查看JSONValue的文档,您将不会发现任何接受具有相同值的key.Therefore多键的方法都不受支持。您必须将JSON格式更改为
[
  {
    "type": "page",
    "currentPageNumber": "page1",
    ...
  },
  {
    "type": "page",
    "currentPageNumber": "page2",
    ...
  },
  ...
]这样,Parse()将返回一个JSON对象数组。下一步是通过检查对象type来选择正确的对象,如果对象是page,则将对象作为页面处理,就像显示currentPageNumber一样。
https://stackoverflow.com/questions/34560128
复制相似问题