如何在我的.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'}]}
]
}
答案 0 :(得分:2)
答案 1 :(得分:1)
您可以通过System.Runtime.Serialization.Json命名空间中的DataContractJsonSerializer类使用Json反序列化。它与XML序列化非常相似,因为你创建了一堆数据类,用属性装扮它们并将Json放入反序列化器中。
下面的文章介绍了如何使用Google网络搜索示例与Json合作:
http://www.ben-morris.com/google-search-api-deserialize-json-output-net
答案 2 :(得分: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();
}