Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.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# 将json中的地址数据转换为地址对象_C#_Json_Web Services_Visual Studio 2015 - Fatal编程技术网

C# 将json中的地址数据转换为地址对象

C# 将json中的地址数据转换为地址对象,c#,json,web-services,visual-studio-2015,C#,Json,Web Services,Visual Studio 2015,在请求地址web服务时,我得到以下Json: { "cep": "04194-280", "logradouro": "Rua Memorial de Aires", "complemento": "", "bairro": "Jardim São Savério", "localidade": "São Paulo", "uf": "SP", "unidade": "", "ibge": "3550308", "gia":

在请求地址web服务时,我得到以下Json:

{
    "cep": "04194-280",
    "logradouro": "Rua Memorial de Aires",
    "complemento": "",
    "bairro": "Jardim São Savério",
    "localidade": "São Paulo",
    "uf": "SP",
    "unidade": "",
    "ibge": "3550308",
    "gia": "1004"
}
我需要将此json转换为以下对象:

    public class Endereco
    {
        [JsonProperty("cep")]
        public string CEP { get; set; }
        [JsonProperty("logradouro")]
        public string Logradouro { get; set; }
        [JsonProperty("complemento")]
        public string Complemento { get; set; }
        [JsonProperty("bairro")]
        public string Bairro { get; set; }
        [JsonProperty("localidade")]
        public string Localidade { get; set; }
        [JsonProperty("uf")]
        public string UF { get; set; }
        [JsonProperty("ibge")]
        public string IBGE { get; set; }
        [JsonProperty("unidade")]
        public string Unidade { get; set; }
        [JsonProperty("gia")]
        public string GIA { get; set; }
    }
将json转换为对象的代码如下:

using (WebClient client = new WebClient())
{
    string jsonAddress = JsonConvert.SerializeObject(client.DownloadString("http://viacep.com.br/ws/" + tboCep.Text + "/json/"));
    Addressa ddr = JsonConvert.DeserializeObject<Endereco>(jsonAddress);

    tboCidade.Text = address.Localidade; //City
    tboEstado.Text = address.UF;         // State
    tboRua.Text = address.Logradouro;    // Street
    tboBairro.Text = address.Bairro;     // District
}

有谁知道如何解决这个问题或者有更好的建议吗?提前谢谢你

您在这里进行连载

string jsonAddress = JsonConvert.SerializeObject(client.DownloadString("http://viacep.com.br/ws/" + tboCep.Text + "/json/"));
从客户机返回的字符串已经是一个序列化对象,您基本上要再次序列化它

获取直接从web调用返回的字符串,并将其解压缩

string jsonAddress = client.DownloadString("http://viacep.com.br/ws/" + tboCep.Text + "/json/");
var ddr = JsonConvert.DeserializeObject<Endereco>(jsonAddress);
string jsonAddress=client.DownloadString(“http://viacep.com.br/ws/“+tboCep.Text+”/json/”;
var ddr=JsonConvert.DeserializeObject(jsonAddress);

您在这里进行了双重序列化

string jsonAddress = JsonConvert.SerializeObject(client.DownloadString("http://viacep.com.br/ws/" + tboCep.Text + "/json/"));
从客户机返回的字符串已经是一个序列化对象,您基本上要再次序列化它

获取直接从web调用返回的字符串,并将其解压缩

string jsonAddress = client.DownloadString("http://viacep.com.br/ws/" + tboCep.Text + "/json/");
var ddr = JsonConvert.DeserializeObject<Endereco>(jsonAddress);
string jsonAddress=client.DownloadString(“http://viacep.com.br/ws/“+tboCep.Text+”/json/”;
var ddr=JsonConvert.DeserializeObject(jsonAddress);

您正在双重序列化。获取直接从web调用返回的字符串,并取消双重序列化。获取直接从web调用返回的字符串,并将其解压缩