如何命名c#类字段,以便能够使用无效字符反序列化json字段名称

前端之家收集整理的这篇文章主要介绍了如何命名c#类字段,以便能够使用无效字符反序列化json字段名称前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 JSON.NET反序列化我的一些 JSON响应.
到目前为止我一直很成功.
为了使JSON.NET正确反序列化对象,需要完全按照JSON中的方式调用类中的字段名称.问题是我有一些字段在他们的名字中有一些时髦的字符,我不能在C#中使用像{“(.

有谁知道如何重命名字段,以便正确映射?

这是一个有效的简短例子.

JSON输入:

{
    "contact_id": "","status": "Partial","is_test_data": "1","datesubmitted": "2013-10-25 05:17:06"
}

反序列化的类:

class DeserializedObject
{
    public string contact_id;
    public string status;
    public int is_test_data;
    public DateTime datesubmitted;
}

反序列化:

var deserialized = JsonConvert.DeserializeObject<DeserializedObject>(jsonInput);

这被正确映射.当我尝试处理以下字段时,问题开始:

{
    "contact_id": "","datesubmitted": "2013-10-25 05:17:06","[variable("STANDARD_GEOCOUNTRY")]": "Germany"
}

反序列化的类:

class Output
{
    public string contact_id;
    public string status;
    public int is_test_data;
    public DateTime datesubmitted;
    public string variable_standard_geocountry; // <--- what should be this name for it to work?
}

我将不胜感激任何帮助.

解决方法

使用JSON.NET,您只需要在属性上放置JsonProperty属性,例如:
class Output
{
    public string contact_id;
    public string status;
    public int is_test_data;
    public DateTime datesubmitted;

    [JsonProperty("[variable(\"STANDARD_GEOCOUNTRY\")]")]
    public string variable_standard_geocountry; // <--- what should be this name for it to work?
}

现在将反序列化.这假定您的JSON使用这些引号正确格式化,例如:

{
    "contact_id": "","[variable(\"STANDARD_GEOCOUNTRY\")]": "Germany"
}
原文链接:https://www.f2er.com/csharp/244636.html

猜你在找的C#相关文章