2013-02-17 114 views
1

我已經使用json2csharp生成了一些可以反序列化json的好c#類。如何使用非法json字段名稱重命名和重映射字段

它實際上按預期工作除了json2csharp命名了一些字段invalid_name。我將它們重命名爲有效的csharp名稱,但是在序列化這些類時爲空。

我發現this other SO post ...其中的應答者一說下面...

記住下面我粘貼了類不會直接工作, 因爲一些命名的json中的字段。您可能需要 手動重命名並映射它們。

這正好描述了我的問題。不幸的是,答案並沒有提供實際的「映射它們」的線索。那麼有人可以告訴我如何手動將一些json數組映射到c#類。

我正在使用RestSharp反序列化器,順便說一句。

任何想法?

回答

6

如果您使用JSON.NET作爲基礎或JSON解析,您可以重命名屬性,然後使用屬性修飾它們以將它們對齊回原始JSON對象。

一個示例是JSON中的一個名爲1的屬性,它在C#中無效。這可以通過以下進行修正:

[JsonProperty("1")] 
public int? One { get; set; } 

還有一個JSONObject屬性,如果你想在類級別的編輯,也是一個JsonIgnore對象忽略性能的系列化。