使用C#解析JSON数据

Dai*_*ama 7 c# json visual-studio

我有大约7000行我要解析的JSON数据.这里可以看到其中一部分的例子.我所做的就是利用WebRequestStreamReader把所有的数据转换成字符串.(奇怪的是,它将所有数据放入一个非常长的行).但现在我想解析这个,我不知道如何.任何人都可以解释如何使用Deserialize?我以前用Java解析过JSON数据但是我在使用C#时遇到了麻烦,特别是我无法找到带有明确示例的文档.任何帮助将不胜感激.

Ste*_*end 18

试试JSON.Net,如果你还没有看到它,它应该会帮助你.

Json.NET库使得在.NET中使用JSON格式的数据变得简单.主要功能包括灵活的JSON序列化程序,用于快速将.NET类转换为JSON,然后再返回,以及LINQ to JSON,用于读写JSON.

这里讨论反序列化.

在JSON文本和.NET对象之间转换的最快方法是使用JsonSerializer.JsonSerializer将.NET对象转换为等效的JSON,然后再转换回来.

反序列化的基本代码结构如下 - Target仍需要填写以捕获具有适当类型的其余已解析数据项.提到的文件json.txt包含上述URL中的数据.

using System;
using System.IO;
using Newtonsoft.Json;

public class NameAndId
{
    public string name;
    public int id; 
}

public class Data
{
    public NameAndId[] data;
}

public class Target
{
    public string id;
    public NameAndId from;
    public Data likes;
}

public class Program
{
    static void Main(string[] args)
    {
        string json = File.ReadAllText(@"c:\temp\json.txt");
        Target newTarget = JsonConvert.DeserializeObject<Target>(json);
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是JSON流的第一部分供参考:

{
   "id": "367501354973",
   "from": {
      "name": "Bret Taylor",
      "id": "220439"
   },
   "message": "Pigs run from our house in fear. Tonight, I am wrapping the pork tenderloin in bacon and putting pancetta in the corn.",
   "updated_time": "2010-03-06T02:57:48+0000",
   "likes": {
      "data": [
         {
            "id": "29906278",
            "name": "Ross Miller"
         },
         {
            "id": "732777462",
            "name": "Surjit Padham"
         },
Run Code Online (Sandbox Code Playgroud)


Mar*_*ark 9

我个人不喜欢在框架提供功能时携带对外部库的依赖.在这种情况下,JavaScriptSerializer班级:

var serializer = new JavaScriptSerializer();

var myobj = serializer.Deserialize<MyType>(mystring);
Run Code Online (Sandbox Code Playgroud)