首页 > 后端开发 > C#.Net教程 > C# 中的 JSON 解析器

C# 中的 JSON 解析器

PHPz
发布: 2024-09-03 15:33:30
原创
1058 人浏览过

JSON(JavaScript 对象表示法)解析与语言无关,是一种轻量级数据交换格式、自描述且易于理解。 JSON 解析器是 XML 的替代品;它以结构文本格式表示对象,数据以键值对的形式存储。 JSON 文件名的扩展名为 .json。 JSON 类允许将对象序列化为 JSON 文本以及将 JSON 文本反序列化为对象;内置支持 UTF-8。

语法:

让我们看看 JSON(JavaScript 对象表示法)的语法如下,

  • Jobject.Parse()方法是一个对象类方法,该方法用于将JSON字符串解析为C#的对象。它根据键值解析字符串的数据,然后使用键值检索数据。对于parse方法,语法如下,
Jobject.Parse(jsonStringName);
登录后复制
  • 解析 JSON 字符串的另一种方法是使用 JsonConvert.DeserializeObject(),它属于 JsonConvert 类。让我们看看下面的语法,
JsonConvert.DeserilizeObject<CustomClassName>(JsonStringName);
登录后复制
登录后复制
  • 使用 JavaScriptSerialize() 解析 JSON 字符串。 De-serialize()方法,该方法仅适用于最新版本的.NET;让我们看看下面的语法
JavaScriptSerializer(). Deserialize<CustomClassName>(jsonString);
登录后复制

JSON 解析器在 C# 中如何工作?

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人类编写和读取,并由机器解析和生成。它提供高性能和更少的内存空间分配。有许多第三方控件以 JSON 字符串格式从客户端向服务器端提供数据,并且必须将 JSON 字符串转换为合适的对象来访问数据,例如 Kendo UI grid 等第三方控件,等等。在这里,有 UTF-8 内置支持。
Jobject.Parse()方法是一个对象类方法,该方法用于将JSON字符串解析为C#的对象。根据键值,它解析字符串的数据并使用键值检索数据。下面我们看一下 JSON 解析格式和工作流程,

{
string jsonString = @"{
'user_FirstName':'Peter',
'user_LastName':'Paul'
}";
By using the JSON parsing method we can convert and retrieve as follows,
var getResult = JObject.Parse(jsonString);
登录后复制

这样我们就可以检索数据了。

解析 JSON 字符串的另一种方法是使用 JsonConvert.DeserializeObject(),它属于 JsonConvert 类,该方法称为 JsonConvert.DeserializeObject() 将 JSON 字符串转换为 C# 对象。 JSON 字符串创建这些对象。该方法使用的格式如下,

JsonConvert.DeserilizeObject<CustomClassName>(JsonStringName);
登录后复制
登录后复制

创建一个名为 UserDetails 的类,其属性为 First_Name 和 Last_Name,以如下所示的 JSON 格式输入数据,以接收此函数的结果。

var get_jsonString = @"{'First_Name': 'Peter', 'Last_Name': 'Paul'}";
登录后复制

要按如下方式转换数据,

var result = JsonConvert.DeserializeObject < UserDetails > (get_jsonString);
登录后复制

使用 JavaScriptSerialize() 解析 JSON 字符串。 De-serialize()方法仅适用于.NET以后的版本;此方法不适用于早期版本;为此,我们可以使用前两种方法将 JSON 字符串转换为 C# 对象。该方法使用的格式如下,

JavaScriptSerializer().Deserialize<CustomClassName>(jsonString);
To create the class with UserDetails as follows,
class UserDetails
{
public string userName { get; set; }
public int userAge { get; set; }
}
登录后复制

输入用户详细信息以将 JSON 转换为 C# 对象,如下所示,

var input_json = @"{""name"":""Peter Paul"",""age"":49}";
登录后复制

使用下面的serializer()方法将json转换为c#对象,如下所示,

var resultObject = new JavaScriptSerializer().Deserialize<UserDetails>(input_json);
登录后复制

.NET Framework 支持使用我们与 DataContractJsonSerializer 一起使用的类来反序列化和序列化为 JSON。通过使用下面的代码,我们可以反序列化 JSON 对象;使用该方法,我们需要执行以下一些步骤,

应用程序必须具有 System.Runtime.Serialization 库的引用。

整个类应该有DataContract,属性必须有DataMember属性。

[DataContract]
public class USerDetails
{
[DataMember]
public string First_Name {
get; set;
}
[DataMember]
public string Last_Name {
get; set;
}
}
登录后复制
  • 我们必须使用 WriteObject 方法来序列化对象,并使用 ReadObject 方法来反序列化 JSON 对象。
string get_json = "{ \"First_Name\":\"Smith\",\"LastName\":\"Rio\" }";
登录后复制

DataContractJsonSerializerjsonSerializer = newDataContractJsonSerializer(typeof(USerDetails));

Json.NET是工作环境最好的框架。网。 JSON 有很多好处和特点,如下,

  • 它是JSON序列化器在.NET对象和JSON之间的灵活转换。
  • 会有LINQ to JSON的手动写入和读取JSON
  • 它的运行速度比 .NET 更快,并且内置具有高性能数据的 JSON 序列化器。
  • 易于读取 JSON 并编写缩进。
  • JSON 和 XML 之间的转换很简单。

示例

计划#1

Jobject.Parse()方法是一个对象类方法,该方法用于将JSON字符串解析为C#的对象。它根据键值解析字符串的数据并使用键值检索数据。下面我们看一下 JSON 解析的实现,

using System;
using Newtonsoft.Json.Linq;
namespace JSONParsing
{
public class Parsing
{
public static void Main(string[] args)
{
string jsonString = @"{
'user_FirstName':'Peter',
'user_LastName':'Paul'
}";
//Using the JSON-parse method here
var getResult = JObject.Parse(jsonString);
Console.WriteLine("\n\tUsing JSON-Parse Method");
Console.WriteLine(string.Concat("\n\tDisplaying User First and Last Name: ", getResult["user_FirstName"], " " + getResult["user_LastName"], "."));
}
}
}
登录后复制

输出:

C# 中的 JSON 解析器

Program #2

To parse the JSON String using JsonConvert.DeserializeObject(), which belongs to the JsonConvert class, the method called JsonConvert.DeserializeObject() converts the JSON string to the C# object. The JSON string creates those objects.

using System;
using Newtonsoft.Json;
namespace JSONParse_Program
{
public class UserDetails
{
public string First_Name
{
get; set;
}
public string Last_Name
{
get; set;
}
}
public class Parsing
{
public static void Main(string[] args)
{
var get_jsonString = @"{'First_Name': 'Peter', 'Last_Name': 'Paul'}";
//Use of the method
var result = JsonConvert.DeserializeObject < UserDetails > (get_jsonString);
Console.WriteLine("JSON-Parse Method\n");
Console.WriteLine(string.Concat("\nDisplaying First and Last Name, ", result.First_Name, " " + result.Last_Name, "."));
}
}
}
登录后复制

Output:

C# 中的 JSON 解析器

Conclusion

In this article, I have explained the usage of JSON parser; for example, by using those methods, we can parse the JSON in the C# program and extract values.

以上是C# 中的 JSON 解析器的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板