2013-07-29 98 views
2

到C#的回应我的新阅读,并没有找到一个简单的代码来读取URL的响应。例如:最简单的方法来从URL

http://www.somesitehere.com/mysearch 

的反应是这样的(我不知道是什么样的反应是这样的):

{ "response": { 
"status": { 
    "code": "0", 
    "message": "Success", 
    "version": "4.2" 
}, 
    "start": 0, 
    "total": 121, 
    "images": [ 
    { 
     "url": "www.someimagelinkhere.com/pic.jpg", 
     "license": { 
     "url": "", 
     "attribution": "", 
     "type": "unknown" 
     } 
    } 
    ] 
}} 

之后,我会去保存URL“www.someimagelinkhere.com/ pic.jpg“到一个文件。但是,我知道该怎么做。我只是想分开其余的网址。

我看到这个题目:Easiest way to read from a URL into a string in .NET

再见

+0

的[从URL读入在.NET中的字符串最简单的方法(可能重复http://stackoverflow.com/questions/1048199/easiest-way-to -read-从-A-URL - 到 - 一个字符串,在网) – Jwosty

+0

有什么问题解决?您要提取的页面只是似乎是JSON格式...... – Jwosty

+0

链接[Json.NET(http://json.codeplex.com/)。对于未来的参考,你应该看看'内容Type'头,这通常会告诉你的反应是什么类型。例如,这个可能类似于'application/json'。 –

回答

3

你的反应是JSON格式。使用一个库(NewtonSoft,但也有其他)来提取你想要的节点。

1

您可以通过牛顿软,这可以被发现和使用Visual Studio的NuGet包管理器安装使用类似JSON.NET。

你也可以只做到这一点。

var jSerializer = new JavaScriptSerializer(); 
var result = jSerializer.DeserializeObject("YOUR JSON RESPONSE STRING"); 

JSON字符串不会与如果需要,你可以创建一个强类型的对象,并投出您转换的对象到符合您的名字,如启动,总,图像等是性能的C#对象一个易于使用。

强类型版本:

var jSerializer = new JavaScriptSerializer(); 
var result = (YourStrongType)jSerializer.DeserializeObject("YOUR JSON RESPONSE STRING"); 

var imgUrl = result.images[0].url;