2013-09-27 12 views
0

地獄!我有一個Dictionary<string,Dictionary<CustomClass,string>>,我想連載。 我希望得到的結果是一樣的東西:JsonConvert串行化時意外的行爲字典

{ 
    "key1":{ 
      { 
      "CustomClassProperty1":"val1", 
      "CustomClassProperty2":"val2", 
      "CustomClassProperty3":"val3" 
      }:"Final STR", 
      { 
      "CustomClassProperty1":"val10", 
      "CustomClassProperty2":"val2", 
      "CustomClassProperty3":"val35" 
      }:"Final STR4", 
      { 
      "CustomClassProperty1":"val100", 
      "CustomClassProperty2":"val25", 
      "CustomClassProperty3":"val300" 
      }:"Final STR8" 
     }, 
    "key2":{ 
      { 
      "CustomClassProperty1":"val4", 
      "CustomClassProperty2":"val5", 
      "CustomClassProperty3":"val6" 
      }:"Final STR 2" 
     }, 
    "key3":{ 
      { 
      "CustomClassProperty1":"val1", 
      "CustomClassProperty2":"val7", 
      "CustomClassProperty3":"val5" 
      }:"Final STR 3", 
      { 
      "CustomClassProperty1":"val10", 
      "CustomClassProperty2":"val2", 
      "CustomClassProperty3":"val35" 
      }:"Final STR0", 
      { 
      "CustomClassProperty1":"val100", 
      "CustomClassProperty2":"val25", 
      "CustomClassProperty3":"val300" 
      }:"Final STR10" 
     } 
} 

但相反我越來越

{ 
    "key1":{ 
      "MyProjectNamespace.CustomClass":"Final STR", 
      "MyProjectNamespace.CustomClass":"Final STR4" 
     }, 
    "key2":{ 
      "MyProjectNamespace.CustomClass":"Final STR 2" 
     }, 
    "key3":{ 
      "MyProjectNamespace.CustomClass":"Final STR 3" 
     } 
} 

誰能告訴我如何作出正確的?我不想要「namespace.classname」,但屬性...我使用Newtonsoft.Json btw ...太多了!

+0

我不確定你想要的是有效的JSON。 http://www.jsonschema.net/不喜歡它。 –

+0

@TimS。我知道...我真的不知道這是什麼正確的形式...意識是我想要的密鑰序列化完整...而不僅僅是namespace.className ...我認爲它很清楚... – Leonardo

+1

@Leonardo JSON對象中的鍵*必須是字符串*。這意味着你不能將你的'Dictionary'直接序列化爲JSON對象。你必須決定你想如何序列化它並告訴序列化程序。 – svick

回答

1

您所需的輸出不在JSON format中。 :的左側是對象屬性的名稱,並且必須是字符串。要獲得您列出的格式,您需要使用另一個支持非JSON格式的序列化程序。