Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.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
C#转义关键字_C#_Json - Fatal编程技术网

C#转义关键字

C#转义关键字,c#,json,C#,Json,我遇到了一个有趣的情况 我正在使用BlockCypher API生成加密地址,BlockCypher作为响应返回的是一个Json对象,包含以下字段:“address”、“public”和“private” 这是我的代码: HttpClient client = new HttpClient(); HttpResponseMessage response = await client.GetAsync(endpoint); if (response.IsSuccessStatusCode) {

我遇到了一个有趣的情况

我正在使用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
   };
}
但是我遇到了问题,因为
public
private
是C#中的关键字:)


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

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
公共类JsonObject
{
公共字符串地址{get;set;}
[JsonProperty(“公共”)]
公共字符串公钥{get;set;}
[JsonProperty(“私有”)]
公共字符串私钥{get;set;}
}
var jsonObject=JsonConvert.DeserializeObject(json);
//jsonObject.PublicKey

我认为没有其他方法可以逃避:多么糟糕的API。。。您应该创建自己的类并使用
[JsonProperty(“name”)]
annotation@CamiloTerevintoAPI的错在哪里?你不能指望他们避开每一种语言中作为json密钥发明的每一个关键字。@代码有许多语言的
public
private
都是关键字,API的开发人员应该知道这一点,并使用更友好的名称