Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用C解析JSON数据#_C#_Visual Studio_Json - Fatal编程技术网

C# 用C解析JSON数据#

C# 用C解析JSON数据#,c#,visual-studio,json,C#,Visual Studio,Json,我有大约7000行JSON数据要解析。我们可以看到其中一部分的例子。我所做的是使用WebRequest和StreamReader将所有数据放入一个字符串中。(奇怪的是,它将所有数据放在一条很长的线中)。但是现在我想解析这个,我不知道如何解析。谁能解释一下如何使用反序列化?我以前用Java解析过JSON数据,但在用C#解析JSON数据时遇到了困难,尤其是我无法找到带有清晰示例的文档。任何帮助都将不胜感激。试试看,如果您没有看到这一点,它应该会对您有所帮助 Json.NET库使使用 .NETSimp

我有大约7000行JSON数据要解析。我们可以看到其中一部分的例子。我所做的是使用
WebRequest
StreamReader
将所有数据放入一个字符串中。(奇怪的是,它将所有数据放在一条很长的线中)。但是现在我想解析这个,我不知道如何解析。谁能解释一下如何使用
反序列化
?我以前用Java解析过JSON数据,但在用C#解析JSON数据时遇到了困难,尤其是我无法找到带有清晰示例的文档。任何帮助都将不胜感激。

试试看,如果您没有看到这一点,它应该会对您有所帮助

Json.NET库使使用 .NETSimple中JSON格式的数据。 主要功能包括灵活的JSON 用于快速转换的序列化程序 .NET类转换为JSON并再次转换, 以及LINQ到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);
    }
}

就我个人而言,当功能由框架提供时,我不喜欢依赖外部库。在这种情况下,类:

var serializer=newJavaScriptSerializer();
var myobj=serializer.Deserialize(mystring);

另请参见--链接带来的全新乐趣能否给我举个例子,说明如何使用我提供的链接?@Daisama-我会看一看,但这不会很快发生。@Daisama-看一看,似乎很简单。哇,这很有帮助。非常感谢。因此,对于具有多个条目(“likes”和“messages”)的对象,我应该只创建一个对象数组?在我看来,“likes”和“messages”都可以被视为一个结构,它有一个成员,一个结构数组(每个结构实际上与
中的
相同)。我会试着再发一次。同意。此外,我还使用位于System.Runtime.Serialization.Json命名空间(System.Runtime.Serialization assembly)中的DataContractJsonSerializer类来反序列化Json对象:
DataContractJsonSerializer jsonSerializer=new DataContractJsonSerializer(typeof(T));return(T)jsonSerializer.ReadObject(memoryStream)@Dr.Wily'sApprentice:不过,这需要哪个参考或.net框架?(编辑)啊
System.ServiceModel.Web
{
   "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"
         },
var serializer = new JavaScriptSerializer();

var myobj = serializer.Deserialize<MyType>(mystring);