当前位置: 首页 > 面试题库 >

使用C#解析JSON数据

糜昌胤
2023-03-14
问题内容

我有大约7000行要解析的JSON数据。在这里可以看到其中一部分的示例。我所做的就是利用WebRequestStreamReader把所有的数据转换成字符串。(奇怪的是,它将所有数据放入一条很长的行中)。但是现在我想解析这个,我不确定如何。谁能解释如何使用Deserialize?我之前已经用Java解析过JSON数据,但是用C#却遇到了麻烦,特别是因为我无法找到带有清晰示例的文档。任何帮助将不胜感激。


问题答案:

尝试使用JSON.Net,如果您还没有看到它,它将对您有所帮助。

Json.NET库使在.NET中处理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);
    }
}

这是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"
         },


 类似资料:
  • 问题内容: 我正在尝试找到一种用C解析JSON的好方法。我真的不需要庞大的库或任何东西,我宁愿拥有体积小,重量轻,功能最少的东西,但有很好的文档。 有人有什么可以指点我的吗? 问题答案: Json并不是一门强大的语言,因此它的库可能很小(至少比Xml库要小)。 有一个整体吨C中的Json.org库链接。也许其中之一会很适合您。

  • 问题内容: 我正在与Json.Net解析数组。我正在尝试做的是将名称/值对从数组中拉出,并在解析JObject时将它们分配给特定的变量。 这是数组中的内容: 这是我在C#中获得的东西: 我是JSON和Json.Net的新手,因此它可能是其他人的基本解决方案。我基本上只需要在foreach循环中分配名称/值对,以便可以在前端输出数据。有人做过吗? 问题答案: 您可以这样获得数据值: 小提琴:http

  • 问题内容: 我有一个像这样的JSON文件: 在文件具有根元素之前,我将使用: 代码,但我不认为如何将类编码为根元素是一个数组。 我试过使用: 与: 但是还没有运气。使用这种方法我还能怎么读呢? PS我有这个工作使用: 但是我更想知道如何使用这两种方法(如果可能)。 问题答案: 问题是由放置在数组中的JSON对象(在 每种 情况下)的末尾逗号引起的: 如果删除它们,您的数据将成为 和 应该工作正常。

  • 附言:我用这个来工作: 但我更希望知道如何做到这一点(如果可能的话)与这两种方法。

  • 问题内容: 我有以下格式的对象数组: 我想要得到的是C#中的代码,其中一个对象包含一个json对象中的所有数据。问题是,我可以 不 使一个类与此对象喜欢这里的属性: 因为我每次都会得到不同的结果,但是我知道它总是一个对象数组。有人知道我如何设法取回一系列对象? 编辑 我必须通过将该对象传递给powershell 。因此,输出仅应是中的对象。 问题答案: 像这样使用newtonsoft:

  • 问题内容: 我想解析此页面上的一些数据:http : //www.bbc.co.uk/radio1/programmes/schedules/england/2013/03/1.json 我想解析的数据是标题,但是我不确定如何提取数据。到目前为止,这是我所做的: } 这只是返回null。有人可以告诉我我需要更改吗?谢谢。 问题答案: 如果您阅读的Javadoc 实际上是,它会指出 返回: 指定键映