Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.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# 如何在Windows Phone上读取此JSON?_C#_Json_Windows Phone 7_Serialization - Fatal编程技术网

C# 如何在Windows Phone上读取此JSON?

C# 如何在Windows Phone上读取此JSON?,c#,json,windows-phone-7,serialization,C#,Json,Windows Phone 7,Serialization,我必须阅读以下内容: [ {"id":"2","code":"jne","name":"JNE"}, {"id":"5","code":"pcp","name":"PCP"}, {"id":"1","code":"pos","name":"Pos Indonesia"}, {"id":"6","code":"wahana","name":"Wahana"} ] 我试过这个: [DataContract] public class Eksp

我必须阅读以下内容:

[   
    {"id":"2","code":"jne","name":"JNE"},   
    {"id":"5","code":"pcp","name":"PCP"},   
    {"id":"1","code":"pos","name":"Pos Indonesia"}, 
    {"id":"6","code":"wahana","name":"Wahana"}  
]
我试过这个:

[DataContract]
public class Ekspedisi
{
    [DataMember]
    public int id { get; set; }
    [DataMember]
    public String code { get; set; }
    [DataMember]
    public String name { get; set; }
}
这是:

public static Ekspedisi[] res;  
string link5 = "http://www.ongkoskirim.com/api/0.2/?id=OAL66afd139a386fee6dc5a5597abd7daba&q=expedition"    
WebClient client = new WebClient(); 
client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted);    
client.OpenReadAsync(new Uri(link5), UriKind.Absolute);
这是:

void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
    try
    {
        var ser = new DataContractJsonSerializer(typeof(Ekspedisi));
        res = (Ekspedisi[])ser.ReadObject(e.Result);
        for (int i = 0; i < length; i++)
        {
            Debug.WriteLine(res[i].id+","+res[i].name); 
        }
    }
    catch (Exception ex)
    {
        Debug.WriteLine(ex.Message);
        Debug.WriteLine(ex.StackTrace);
    }
} 
void客户端\u OpenReadCompleted(对象发送方,OpenReadCompletedEventArgs e)
{
尝试
{
var ser=新的数据契约JSONSerializer(typeof(Ekspedisi));
res=(Ekspedisi[])ser.ReadObject(e.Result);
for(int i=0;i

但它总是显示
invalidCastException
。有人能帮我吗?

当您反序列化JSON时,您使用的是Ekspedisi类型,即使您返回的是一个集合。如果更改这行代码:

var ser = new DataContractJsonSerializer(typeof(Ekspedisi));

var ser=newdatacontractjsonserializer(typeof(IEnumerable));

这是您类型的集合;您将发现不再收到异常

非常感谢,这非常有帮助,我不再收到例外:)
var ser = new DataContractJsonSerializer(typeof(IEnumerable<Ekspedisi>));