C#escape关键字

时间:2018-01-10 12:14:01

标签: c# json

我遇到了一个有趣的情况。

我正在使用BlockCypher API生成加密地址,而BlockCypher作为响应返回的是具有以下字段的Json对象:“address”,“public”和“private”。

这是我的代码:

HttpClient client = new HttpClient(); 
HttpResponseMessage response = await client.GetAsync(endpoint);
if (response.IsSuccessStatusCode)
{
   string json = await response.Content.ReadAsStringAsync();
   dynamic dynamicJson = JsonConvert.DeserializeObject(json);
   return new MyAddress()
   {
     Address = (string)dynamicJson.address,
     PublicKey = (string)dynamicJson.public,
     PrivateKey = (string)dynamicJson.private
   };
}

但我遇到问题,因为publicprivate是C#中的关键字:)

显然,有许多替代方法,例如使用dynamicJson["public"]或反序列化到现有类中以避免dynamic,但我只是想知道是否有办法逃避这些关键字或其他一些解决方法

1 个答案:

答案 0 :(得分:0)

你可以这样试试;

public class JsonObject
{
    public string Address { get; set; }
    [JsonProperty("public")]
    public string PublicKey { get; set; }
    [JsonProperty("private")]
    public string PrivateKey { get; set; }
}

var jsonObject = JsonConvert.DeserializeObject<JsonObject>(json);
//jsonObject.PublicKey