【问题标题】:Google Visualization API .net? [closed]谷歌可视化 API .net? [关闭]
【发布时间】:2009-03-26 16:36:10
【问题描述】:

如何在我的 .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'}]}
  ]
}

【问题讨论】:

    标签: serialization json.net


    【解决方案1】:

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

    是的。这就是它的用途。

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

    The manual

    【讨论】:

    • 感谢您的回答。我忘了提到我对.NET 很陌生。我阅读了手册并试图弄清楚如何反序列化我的数据结构。但是现在我比阅读手册之前更加困惑。
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

      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();
      

      }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多