我正在制作一个使用 Reddit 的 API 从子 reddit 获取帖子的应用程序
但是每次我得到的 JSON 都有\"而不是 "
我尝试了三种不同的方法从 Reddit 网站下载 JSON,但每次它都充满\"而我的反序列化器无法处理该问题
var json = get_json("https://www.reddit.com/r/" + "memes" + "/new.json?sort=new&limit=1");
string webData = json.Replace('\"', '"');
MessageBox.Show(webData, "");
NormalInput normal = JsonConvert.DeserializeObject<NormalInput>(webData);
public string get_json(string url)
{
Uri uri = new Uri(url);
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(uri);
request.Method = WebRequestMethods.Http.Get;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string output = reader.ReadToEnd();
response.Close();
return output;
}
我希望 json.Replace() 或 get_json() 的输出没有任何\",但我到处都得到它们
最佳答案
这是一个使用动态和基本 WebClient 的完整工作示例:
using System;
using Newtonsoft.Json;
using System.Net;
public class Program
{
public static void Main()
{
var client = new WebClient();
var url = "https://www.reddit.com/r/" + "memes" + "/new.json?sort=new&limit=1";
var json = client.DownloadString(url);
dynamic output = JsonConvert.DeserializeObject<dynamic>(json);
Console.WriteLine(output.data.children[0].data.title);
}
}
当前输出:
This meme is not dead!
要与 reddit 交互,也许您应该依赖 C# reddit 客户端库。检查nuget .
如果您想继续使用自制解决方案(为了乐趣和学习),您可以使用 HttpClient
而不是旧的(但简单)WebClient
来改进此快速答案。 code> 并从 JsonConvert.DeserializeObject
的动态使用切换到真实的类(我写了一个 answer to achieve that 。试试吧 ^^)。如果您的类 NormalInput
与 json 匹配,请继续使用它。
关于c# - 如何用\"修复JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57250589/