[英]I can not Parse JSON to string
我的 C# 代码有问题。 我不知道如何修复。 我只想从 json 获取所有标题。 它在以下位置显示错误:
var obj = JObject.Parse(jsons);
“解析值时遇到意外字符:。路径 '',第 0 行,位置 0。”
public void getTitle()
{
ArrayList myTitle = new ArrayList();
string url = "https://www.fiverr.com/gigs/endless_page_as_json?host=subcategory&type=endless_auto&category_id=3&sub_category_id=154&limit=48&filter=auto&use_single_query=true&page=1&instart_disable_injection=true";
using (var webClient = new System.Net.WebClient())
{
var jsons = webClient.DownloadString(url);
if (jsons != null)
{
var obj = JObject.Parse(jsons);
var urll = (string)obj["gigs"]["title"];
myNode1.Add(urll);
}
else
{
MessageBox.Show("nothing");
}
}
}
在这种情况下, WebClient
类将无济于事,因为返回的数据采用 gZip 压缩格式。 混淆点在于,当在浏览器中浏览相同的 URL 时,它显示纯文本,因为解压任务是由浏览器本身自动执行的。
以下代码片段应该可以解决您的问题。 在访问 title 属性之前,数组索引也丢失了:
public void getTitle()
{
ArrayList myTitle = new ArrayList();
string url = "https://www.fiverr.com/gigs/endless_page_as_json?host=subcategory&type=endless_auto&category_id=3&sub_category_id=154&limit=48&filter=auto&use_single_query=true&page=1&instart_disable_injection=true";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.AutomaticDecompression = DecompressionMethods.GZip;
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(response.CharacterSet)))
{
var jsons = reader.ReadToEnd();
if (jsons != null)
{
var obj = JObject.Parse(jsons);
var urll = (string)(obj["gigs"][0]["title"]); //returns: design a Tshirt for you
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.