JSON(JavaScript 对象表示法)解析与语言无关,是一种轻量级数据交换格式、自描述且易于理解。 JSON 解析器是 XML 的替代品;它以结构文本格式表示对象,数据以键值对的形式存储。 JSON 文件名的扩展名为 .json。 JSON 类允许将对象序列化为 JSON 文本以及将 JSON 文本反序列化为对象;内置支持 UTF-8。
语法:
让我们看看 JSON(JavaScript 对象表示法)的语法如下,
Jobject.Parse(jsonStringName);
JsonConvert.DeserilizeObject<CustomClassName>(JsonStringName);
JavaScriptSerializer(). Deserialize<CustomClassName>(jsonString);
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; } }
string get_json = "{ \"First_Name\":\"Smith\",\"LastName\":\"Rio\" }";
DataContractJsonSerializerjsonSerializer = newDataContractJsonSerializer(typeof(USerDetails));
Json.NET是工作环境最好的框架。网。 JSON 有很多好处和特点,如下,
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"], ".")); } } }
输出:
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:
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中文网其他相关文章!