c# – 在aspx网页上使用JsonObject的内容
我正在尝试使用HTTP请求从google shopping api返回json字符串的内容.我到目前为止似乎工作但我想知道如何使用对象的内容来显示页面上的数据.
public string HttpGet(string url) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); try { using (Stream stream = response.GetResponseStream()) { StreamReader reader = new StreamReader(stream); return reader.ReadToEnd(); } } finally { response.Close(); } } protected void submit_Click(object sender,EventArgs e) { string json = HttpGet("https://www.googleapis.com/shopping/search/v1/public/products?key={KEY}4&country=UK&q=BX80637153570K&rankBy=price:ascending&maxResults=1&alt=json"); dynamic obj = JsonObject.Parse(json); } 好吧,看看它看起来好像我需要一个C#类来获取json中返回的数据.我使用json2csharp.com创建了一个类.这是我需要从Json返回并在页面上显示的数据.也许这有助于更好地解释我的问题. https://www.googleapis.com/shopping/search/v1/public/products?key=AIzaSyCC0j59RBeGNtf2W2ft6avhfoTdJ1FQ2c4&country=UK&q=BX80637153570K&rankBy=price:ascending&maxResults=1&alt=json 任何人都可以建议我如何在我的网站上使用这些信息.我现在有点迷失,因为我是这个人的新手,并尝试了几种不同的方法.如果这有所不同,我不需要所有返回的数据吗?只是价格和链接. 解决方法
假设动态obj正确填充,您可以在网页中使用它的内容
例如,如果json是: { "error" : { "code": 400,"message": "Bad Request" } } 您可以使用以下代码访问对象属性: Response.Write("Error code is" + obj.error.code); 当然,Response.Write只是关于如何将检索到的数据发送到页面的示例. 编辑1: 似乎使用的json转换器无法工作或无法正常工作. 这是一个关于如何在动态对象中反序列化而不需要创建具体对象的示例 var url = "http://www.google.com/ig/calculator?hl=en&q=100USD=?EUR"; string json = HttpGet(url); //this is json string: //{lhs: "100 U.S. dollars",rhs: "78.1799703 Euros",error: "",icc: true} //now convert in a dynamic object var jss = new DynamicJsonConverter(); var serializer = new JavaScriptSerializer(); serializer.RegisterConverters(new[] { new DynamicJsonConverter() }); dynamic obj = serializer.Deserialize(json,typeof(object)); //now you have access to json content string text1 = obj.lhs; string text2 = obj.rhs; 可以使用您可以在此处找到的代码创建DynamicJsonConverter类: Deserialize JSON into C# dynamic object? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- c – 显式转换运算符模板的优先级和模糊性
- c – 模块“MyShellExt.dll”无法加载
- flex使用filereference+httphandler实现文件上传/下载
- 防止直接访问mp3 / wav文件,同时允许Flash播放器使用.htacc
- cocos2dx 3.x android平台移植 apk打包教程
- react 使用 eslint 的三种代码检查方案总结,多了解点--让代
- c# – 如何用linq比较两个列表的项目?
- reactjs – 将React类函数存储在单独的文件中
- ruby-on-rails – “test”的未定义方法“merge”:String
- NoSQL理论基础及安装、基本操作