Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将以数字开头的JSON值转换为C#类_C#_Json_Asp.net Core_Serialization_Json.net - Fatal编程技术网

如何将以数字开头的JSON值转换为C#类

如何将以数字开头的JSON值转换为C#类,c#,json,asp.net-core,serialization,json.net,C#,Json,Asp.net Core,Serialization,Json.net,我使用一个web服务,其输出字段以如下数字开头 [{"1_sell_count":"1","2_sell_count":"2","3_sell_count":"2"}] 因为在C#中不能有一个以数字开头的变量,而且如果我更改了属性名,那么JsonConvert.DeserializeObject方法无法将JSON转换为我的类 如何将此JSON输出转换为C#类 此问题的解决方案

我使用一个web服务,其输出字段以如下数字开头

[{"1_sell_count":"1","2_sell_count":"2","3_sell_count":"2"}]
因为在C#中不能有一个以数字开头的变量,而且如果我更改了属性名,那么JsonConvert.DeserializeObject方法无法将JSON转换为我的类

如何将此JSON输出转换为C#类

此问题的解决方案是什么?

您可以将属性附加到属性上,如下所示,它指示
JsonSerializer
始终使用指定的名称序列化成员

public class myclass
{
    [JsonProperty("1_sell_count")]

    public string First_sell_count{ get; set; }  
    [JsonProperty("2_sell_count")]
    public string Second_sell_count{ get; set; }   
    
    [JsonProperty("3_sell_count")]
    public string Third_sell_count{ get; set; }    
}
看小提琴-

在上述情况下,您的转换逻辑将保持不变,即

reservationList = JsonConvert.DeserializeObject<List<myclass>>(apiResponse);
reservationList=JsonConvert.DeserializeObject(apiResponse);
但是,您应该使用类中定义的属性名称来访问C#code中的属性。

您可以在属性上附加属性,如下所示,它指示
JsonSerializer
始终使用指定名称序列化成员

public class myclass
{
    [JsonProperty("1_sell_count")]

    public string First_sell_count{ get; set; }  
    [JsonProperty("2_sell_count")]
    public string Second_sell_count{ get; set; }   
    
    [JsonProperty("3_sell_count")]
    public string Third_sell_count{ get; set; }    
}
看小提琴-

在上述情况下,您的转换逻辑将保持不变,即

reservationList = JsonConvert.DeserializeObject<List<myclass>>(apiResponse);
reservationList=JsonConvert.DeserializeObject(apiResponse);

但是,您应该使用类中定义的属性名称来访问C#代码中的属性。

在属性上使用
JsonProperty(name=)
属性。使用
JsonProperty
或将其反序列化为字典并手动解析Use
JsonProperty(name=)
属性上的属性。使用
JsonProperty
或将其反序列化为字典并手动解析tanks-graete,它在@user1672994Tanks-graete有效,在@user1672994有效