2

如何在我的 .NET 应用程序中使用谷歌可视化 api json 格式的数据?目前无法想象如何使用这些数据。

我必须自己将json解析为对象吗?我可以使用Json.NET反序列化它吗?现在我不知道如何开始。任何帮助表示赞赏。

数据如下所示:

{
  cols: [
    {id: '1', label: 'Name', type: 'string'},
    {id: '2', label: 'Age', type: 'number'},
    {id: '3', label: 'Birthdate', type: 'date'}
  ],
  rows: [
    {c:[{v: 'Dan'}, {v: 18.0, f: 'eighteen'}, {v: new Date(2008, 1, 28, 0, 31, 26), f: '2/28/08 12:31 AM'}]},
    {c:[{v: 'Frank'}, {v: 19.0, f: 'nineteen'}, {v: new Date(2008, 2, 30, 0, 31, 26), f: '3/30/08 12:31 AM'}]},
    {c:[{v: 'Esther'}, {v: 20.0, f: 'twenty'}, {v: new Date(2008, 3, 30, 0, 31, 26), f: '4/30/08 12:31 AM'}]}
  ]
}
4

3 回答 3

2

我可以使用 Json.NET 反序列化它吗?

是的。这就是它的用途。

现在我不知道如何开始。任何帮助表示赞赏。

手册

于 2009-03-26T17:20:16.903 回答
1

您可以通过 System.Runtime.Serialization.Json 命名空间中的 DataContractJsonSerializer 类使用 Json 反序列化。它与 XML 序列化非常相似,因为您创建了一堆数据类,用属性修饰它们并将 Json 放入反序列化器中。

下面的文章通过一个 Google 网络搜索示例解释了如何使用 Json:

http://www.ben-morris.com/google-search-api-deserialize-json-output-net

于 2009-11-08T21:29:12.233 回答
0

我知道我迟到了,但对于未来的求职者来说,请看这里:

https://code.google.com/p/bortosky-google-visualization/

我使用它没有任何问题。

示例代码:

 DataTable tbl = DatabaseEnquiry(sqlcommand, DATE_IN, DATE_OUT, "dd/MM/yyyy HH:mm:ss", true);
 return new Bortosky.Google.Visualization.GoogleDataTable(tbl).GetJson().ToString();

或者,您可以使用 JavaScriptSerializer:

DataTable tbl = DatabaseEnquiry(sqlcommand, DATE_IN, DATE_OUT, "dd/MM/yyyy HH:mm:ss", true);
JavaScriptSerializer js = new JavaScriptSerializer();
StringBuilder sb = new StringBuilder();
try
{
    var linqResults = from DataRow row in tbl.AsEnumerable()
                      select new
                      {
                          avgft = row.Field<object>("AVG FT"),
                          minft = row.Field<object>("MIN FT"),
                          maxft = row.Field<object>("MAX FT"),
                          avgffc = row.Field<object>("AVG FFC"),
                          minffc = row.Field<object>("MIN FFC"),
                          maxffc = row.Field<object>("MAX FFC"),
                          avgtt = row.Field<object>("AVG TT"),
                          mintt = row.Field<object>("MIN TT"),
                          maxtt = row.Field<object>("MAX TT"),
                          avgtfc = row.Field<object>("AVG TFC"),
                          mintfc = row.Field<object>("MIN TFC"),
                          maxtfc = row.Field<object>("MAX TFC")
                      };
    js.Serialize(linqResults, sb);
}
catch (InvalidCastException e)
{
    logger.Debug(e.StackTrace);
    return null;
}
return sb.ToString();

}

于 2013-05-07T09:42:47.413 回答