解析字典中没有给定的密钥

时间:2014-10-25 23:18:04

标签: xamarin.ios parse-platform xamarin

我正在尝试检索一个解析对象,但我遇到了一些问题,这是我用来定义业务对象的类。它抛出以下错误字典中没有给定的键。我只是不确定课程的问题是什么?

public class Clinics
{

    public string ObjectId { get; set; }

    public string Name { get; set; }

    public string Address1 { get; set; }

    public string Data1 { get; set; }
    public string PostCode { get; set; }
    public string locationGeo  { get; set; }
    public DateTime createdAt  { get; set; }
    public string Town  { get; set; }
    public DateTime updatedAt  { get; set; }
    public string Data2 { get; set; }
    public string Data3 { get; set; }
    public string Lat { get; set; }

    public string Lng { get; set; }

}

这就是我从parse.com获取数据集的方式

public static async Task<List<Clinics>> GetAll ()
{
    var query = ParseObject.GetQuery ("clinics").OrderBy ("Name");
    var ie = await query.FindAsync ();
    var tl = new List<Clinics> ();

    foreach (var t in ie) {
        tl.Add (FromParseObject (t));
    }
    return tl;
 }

FromParseObect

static Clinics FromParseObject (ParseObject po)
{
    var t = new Clinics();
    t.Lat = Convert.ToString(po["Lat"]);
    //t.Lng= Convert.ToString(po["Long"]);
    t.Name =   Convert.ToString(po["Name"]);
    t.Address1 = "";
    t.Data1 = "";
    t.Data2 = "";
    t.Data3 = "";
    t.locationGeo = "";
    t.Town = "";
    t.PostCode = "";

    return t;
}

我错过了某种标准的解析定义,因为我收到了以下错误,所以我应该在这个定义中解析错误

字典中没有给定的密钥。

1 个答案:

答案 0 :(得分:0)

正如@Jason所提到的,你应该指定导致错误的行。

我会假设你指的是注释掉的行是错误的。

您尝试访问的索引:

t.Lng= Convert.ToString(po["Long"]);

与属性不同:

public string Lng { get; set; }

“Long”vs“Lng”。