c# - 读取某种 JSON 格式
问题描述
我是 C# 新手,我有某种 JSON 格式正在尝试阅读。我设法引入了整个字符串,但我只需要“数据”位。
{
"notes": {
"status": "success",
"datasource": "Internet",
"result_rows": 35
},
"data": [
["Date", "Visits", "Pageviews", "Clicks", "Bounces", "Time on Website"],
["2018-10-01", 57, 145, 39, 16, 4112],
["2017-10-02", 32, 29, 34, 29, 89],
["2019-10-03", 40, 129, 18, 35, 122216],
["2016-12-04", 15, 12, 13, 10, 14408],
["2019-01-08", 13, 23, 110, 72, 12277],
["2011-12-06", 45, 44, 33, 5, 33784],
["2018-06-15", 30, 428, 454, 64, 67319],
"columns": [{
"name": "Date",
"field": "date",
"type": "dim",
"data_type": "string.time.date"
},
{
"name": "Visits",
"field": "visits",
"type": "met",
"data_type": "int.number.value"
},
{
"name": "Pageviews",
"field": "pageviews",
"type": "met",
"data_type": "int.number.value"
},
{
"name": "Clicks",
"field": "clicks",
"type": "met",
"data_type": "int.number.value"
},
{
"name": "Bounces",
"field": "bounces",
"type": "met",
"data_type": "int.number.value"
},
{
"name": "Time on Website",
"field": "websiteduration",
"type": "met",
"data_type": "float.number.value"
}
]
}
我的代码在以下位置失败:
List<item> Data = JsonConvert.DeserializeObject<List<item>>(jsonString);
我不太确定如何仅以正确的格式提取数据位。先感谢您
我目前使用的代码
namespace API
{
public class item
{
public string Date { get; set; }
public string Visits { get; set; }
public string Pageviews { get; set; }
public string Clicks{get; set;}
public string Bounces { get; set; }
[JsonProperty("Time on website")]
public string Time_on_Website { get; set; }
}
}
namespace API
{
public class Program
{
public static void Main(string[] args)
{
HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(string.Format("https://website.com"));
WebReq.Method = "GET";
HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
Console.WriteLine(WebResp.StatusCode);
Console.WriteLine(WebResp.Server);
string jsonString;
using (Stream stream = WebResp.GetResponseStream())
{
StreamReader reader = new StreamReader(stream, System.Text.Encoding.UTF8);
jsonString = reader.ReadToEnd();
}
List<item> Data = JsonConvert.DeserializeObject<List<item>>(jsonString);
Console.WriteLine(Data);
}
}
}
解决方案
我认为首先你应该添加一个这样的类
public class Items
{
public List<Item> data { get; set; }
}
接着
Items items = new JavaScriptSerializer().Deserialize<Items>(jsonString);
foreach (var item in items.data)
{
...
...
}
但我认为您的 json 字符串格式无效。
推荐阅读
- facebook - 使用 Wireshark 嗅探 Facebook 聊天记录
- gradle - 无法解析“:app@debugUnitTest/compileClasspath”、:app@debugAndroidTest/compileClasspath 的依赖关系
- python - 无法导入 keras.layers.Merge
- sql - 解析 nvarchar 列并添加前导 0
- python - 无法在 XLWings 上保存文件
- java - Citrus-Framework 在场景执行期间更改变量
- mongodb - 通过 Lambda 超时使用 mongo 批量插入并插入数据 3 次
- java - Spring在嵌套类中注入bean null
- mysql - mysql 5.7 无法更新左连接视图的可更新部分
- javascript - 如何删除全屏模式?(InAppBrowser)