【问题标题】:Get JSON object in c# from a web-request从网络请求中获取 C# 中的 JSON 对象
【发布时间】:2012-08-04 11:04:39
【问题描述】:

我需要从外部域获取 json 数据。我使用 webrequest 从网站获取响应。代码如下:

var search = umbraco.library.Request("search");
string Url = "http://ff.ss.dk/Suggest.ff?username=us&password=pass&channel=dk&format=JSON&query="+search;
WebRequest webRequest = WebRequest.Create(Url);
WebResponse response = webRequest.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);

这样我得到这样的输出

[{"hitCount":0,"imageURL":"","query":"Atrix h\u00E5ndcreme Dobbeltvirkende /100 Ml","type":"productName"},{"hitCount":0," imageURL":"","query":"V\u00E6gur 磁吸","type":"productName"},{"hitCount":0,"imageURL":"","query":"Bic kuglepen Atlantis , bl\u00E5","type":"productName"},{"hitCount":0,"imageURL":"","query":"Laminering AT1256 31cm x30m A3","type":"productName"}]

我想以 JSON 对象格式获取此输出数据,我可以在我的 java 脚本函数中使用它。 我认为输出数据的格式不合适,因为我使用了 streamreader 函数来获取数据。有什么想法可以解决这个问题吗?

【问题讨论】:

  • 您是否尝试过使用 Json.Net 来序列化该内容?
  • 输出数据如何'不合适'?在 jsonformatter.curiousconcept.com 验证时,它似乎是有效的 JSON
  • @wal:data 是字符串格式,我需要将其转换为 json 对象

标签: c# asp.net json httpwebrequest


【解决方案1】:

您似乎缺少一个数组名称说明符,例如,这是有效的:

{arrayName:[{"hitCount":0,"imageURL":"","query":"Atrix h\u00E5ndcreme Dobbeltvirkende /100 Ml","type":"productName"},{"hitCount":0,"imageURL":"","query":"V\u00E6gur magnetisk attraction","type":"productName"},{"hitCount":0,"imageURL":"","query":"Bic kuglepen Atlantis , bl\u00E5","type":"productName"},{"hitCount":0,"imageURL":"","query":"Laminering AT1256 31cm x30m A3","type":"productName"}]}

【讨论】:

    【解决方案2】:

    可以使用 jQuery.parseJSON 将这些数据转换为 json 格式。

     var obj = JSON.parse(data);
    

    那么我们就可以像这样访问数据了

     obj[0].id
    

    谢谢大家。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-15
      • 2015-11-24
      • 1970-01-01
      • 2021-09-13
      相关资源
      最近更新 更多