2017-04-14 87 views
0

我有一个JSON结构从现有的REST API,我用来填充不同的类使用Newtonsoft.Json(JSON.Net)。填充JSON到C#类,反之亦然

我想创建一个向导来填充相同的REST API JSON结构。

,我的问题是,我的类命名规则是从JSON API命名约定不同。

我的问题是:我应该使用与REST API JSON结构相同的命名约定来使用jsonconvert.serializeobject,还是应该创建一个匹配JSON结构的JSON字符串?

回答

0

我会提供第三个选项。您可以使用[JsonProperty]属性标记您的类属性,以将它们与不同名称的JSON属性进行匹配。这样你就不需要改变你的JSON,也不需要改变你的类的命名规则。这里有一个简单的例子:

JSON:

{ 
    "item-identifier": 1234, 
    "item-name": "foo" 
} 

类定义:

public class Item 
{ 
    [JsonProperty("item-identifier")] 
    public int Id { get; set; } 

    [JsonProperty("item-name")] 
    public string Name { get; set; } 
} 

反序列化:

Item item = JsonConvert.DeserializeObject<Item>(json); 

小提琴:https://dotnetfiddle.net/bwa1SM

+0

非常感谢你布赖恩。奇迹般有效。 –

+0

我只想为其他读者添加,以排除可添加的财产 [JsonIgnore] –