解析URL中的JSON数据下载

时间:2018-06-24 20:08:29

标签: c# arrays json json.net

我有一些JSON数据,这些数据是从URL作为 .gz 文件下载的,然后解压缩,并以字符串形式读取JSON

我试图遍历记录

但是JArrayJObject都不起作用

有什么想法如何逐个对象读取此数据吗?

{"user_id":"25c6b8080aa26","email":"XXZZZZ@gmail.com","roles":"Manager"}
{"user_id":"1a25c6b8080b6ac","email":"XXXXX@gmail.com"}

1 个答案:

答案 0 :(得分:1)

提供的示例不是有效的JSON文档,但似乎包含JSON对象的摘要。

假设每个记录/对象都限于一行,则可以逐行读取文件并转换对象

提供商数据将解析为

public class user {
    public string user_id { get; set; }
    public string email { get; set; }
    public string roles { get; set; }
}

然后可以使用以下命令对解压缩的文件进行反序列化

public class MyParser {
    public IEnumerable<T> Parse<T>(string path) {
        var lines = File.ReadLines(path);
        foreach (var line in lines) {
            var record = JsonConvert.DeserializeObject<T>(line);
            yield return record;
        }
    }
}

然后获得所需的对象就像

var path = "path to decompressed file";
var parser = new MyParser(); 
var users = parse.Parse<user>(path);
foreach(var user in users) {
    //...
}