从Mailchimp读取的部分json看起来像这样。
"interests": {
"5e0344ae18": true,
"545e5bdb01": true,
"33aa542ea0": true,
"f51a5f9716": true,
"31109a4d58": true,
"bf5f946fd4": true,
"563320981e": false
}
因此我认为用于反序列化的属性应该是这个。
public Interests interests { get; set; }
public class Interests
{
public bool 5e0344ae18 { get; set; }
public bool 545e5bdb01 { get; set; }
public bool 33aa542ea0 { get; set; }
public bool f51a5f9716 { get; set; }
public bool 31109a4d58 { get; set; }
public bool bf5f946fd4 { get; set; }
public bool 563320981e { get; set; }
}
但是,由数字和字母组成的属性名称对于每个类似于“类,结构或接口成员声明中的'无效标记'5e0344'的编译错误无效”。 属性名称如何与json数据中的名称匹配?
答案 0 :(得分:0)
虽然我不相信您可以使用以数字开头的属性名称,但您可以使用字符或字符串作为前缀,并进行一些手动解析。
假设您正在使用C#,http://www.newtonsoft.com/json/help/html/t_newtonsoft_json_linq_jobject.htm可能允许您处理JSON响应并解析属性而不使用我猜您当前正在使用的自动反序列化。
这是我发现的另一篇文章,描述了类似的问题和一些可能的解决方案:Parse jsonObject when field names are unknowm
答案 1 :(得分:0)
您可以使用 Data Annotations
将您的 JSON 属性映射到您的模型属性
这两种方式都有效(传入/传出):
using Newtonsoft.Json; // or Json.Net (built-in)
[JsonProperty(PropertyName = "5e0344ae18")]
public bool YourPropertyName { get; set; }