【发布时间】:2016-10-18 09:16:49
【问题描述】:
希望你能帮助我。我想打印其中一个元素的“标签”。
JSON 输入:
[
{
"entity":{
"type":"postcode",
"id":"P11516",
"label":"18314 Divitz-Spoldershagen",
"value":"18314"
},
"matches":[
{
"offset":0,
"length":5
}
]
},
{
"entity":{
"type":"postcode",
"id":"P11541",
"label":"18314 Kenz-Küstrow",
"value":"18314"
},
"matches":[
{
"offset":0,
"length":5
}
]
},
{
"entity":{
"type":"postcode",
"id":"P11549",
"label":"18314 Löbnitz",
"value":"18314"
},
"matches":[
{
"offset":0,
"length":5
}
]
},
{
"entity":{
"type":"postcode",
"id":"P11551",
"label":"18314 Lüdershagen",
"value":"18314"
},
"matches":[
{
"offset":0,
"length":5
}
]
}
]
以及使用 JsonDeserializer 的 API 调用
public string callGACWithPLZSandbox(string plz)
{
var client = new RestClient("http://rest.sandbox-immobilienscout24.de");
var request = new RestRequest("restapi/api/gis/v2.0/geoautocomplete/DEU", Method.GET);
client.ClearHandlers();
client.AddHandler("application/json", new JsonDeserializer());
request.AddQueryParameter("i", plz);
request.AddQueryParameter("t", "postcode");
request.AddHeader("bla", "blub");
IRestResponse<Rootobject> response = client.Execute<Rootobject>(request);
return response.Data.Property1[1].entity.label;
}
还有,类
class Rootobject
{
public Class1[] Property1 { get; set; }
}
class Class1
{
public Entity entity { get; set; }
public Match[] matches { get; set; }
}
class Entity
{
public string type { get; set; }
public string id { get; set; }
public string label { get; set; }
public string value { get; set; }
}
class Match
{
public int offset { get; set; }
public int length { get; set; }
}
我做错了什么?结果始终是“NullReferenceException:对象引用未设置为对象的实例”...
【问题讨论】:
-
简而言之,您的 JSON 代表一个数组,但您正在反序列化为单个对象。而是反序列化为
List<Class1>。 -
谢谢,但
return response.Data[0].entity.label;仍然会抛出 NullReferenceException。还有其他想法吗?
标签: c# json deserialization restsharp