我正在Visual Studio中创建一个GUI,该GUI将从API提取JSON数据以在文本框中显示,并且希望将其显示为具有格式,以便可读。
我尝试使用Newtonsoft.Json
库来解决此问题,但是似乎它不能在一种JSON衬板上工作,并且必须采用包含不同类型JSON数据的对象。
using (WebClient wc = new WebClient())
{
string API_Key = "000000000000000000000"; // URL with API key containing the JSON data
string JSON_Data_URL = $"https://www.nobil.no/api/server/datadump.php?apikey={API_Key}&countrycode=NOR&fromdate=2005-01-01&format=json";
LoadJSON.Increment(-100); // Reset loadbar
string JSON_Data = JsonConvert.SerializeObject(wc.DownloadString(JSON_Data_URL), Formatting.Indented); // Format JSON data
DataResults.Text = JSON_Data; // Add JSON data to textbox
LoadJSON.Increment(100); // Display when the JSON data is fetched
}
我认为它会输出格式化的JSON字符串,但似乎它只是在JSON中添加反斜杠。我还尝试用新行和4个空格替换反斜杠,但这看起来也不对。
修改
这不是重复的,因为问题似乎是我需要将字符串转换为对象。
答案 0 :(得分:3)
问题是,您正在序列化字符串而不是对象。
string JSON_Data = "..." // Get your json from your API
object JSON_Object = JsonConvert.DeserializeObject(JSON_Data);
string JSON_Data_Formatted = JsonConvert.SerializeObject(JSON_Object, Formatting.Indented);