.NET中的JSON简单应用

本文介绍如何在.NET中使用JSON,包括自定义类的序列化与反序列化、JSON数据的读写等基本操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前两节介绍了些JSON的基础知识和JSON的一些简单应用,.NET中同样也增加了对JSON的一些支持,包括写入、读取、序列化和反序列化,这里收集了一些前辈的一些例子,来看看吧!

首先要引用一下几个名称空间:

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

我们定义一个产品类:

/// <summary>
/// 产品类
/// </summary>
public class Product
{
     String Name;
     DateTime Expiry;
     decimal Price;
}

1、写入JSON

/// <summary>
/// 写入json
/// </summary>

protected void WriteJson()
{
      StringWriter sw = new StringWriter();
      JsonWriter writer = new JsonWriter(sw);
      writer.WriteStartArray();
      writer.WriteStartObject();
      writer.WritePropertyName("Name");
      writer.WriteValue("nameValue");
      writer.WriteEndObject();
      writer.WriteStartObject();
      writer.WritePropertyName("Expiry");
      writer.WriteValue(DateTime.Now);
      writer.WriteEndObject();

      writer.WriteStartObject();
      writer.WritePropertyName("Price");
      writer.WriteValue(23.0m);
      writer.WriteEndObject();
      writer.WriteEndArray();
      writer.Flush();
      String jsonText = sw.GetStringBuilder().ToString();
      Response.Write(jsonText);
}

2、读取JSON

///<summary>

///读取JSON

///</summary>

protected void ReadJson()
{
     String jsonTest = "[{property1:'value1'},{property2:'value2'},{property3:'value3'}]";
     JsonReader reader = new JsonReader(new StringReader(jsonTest));
     while (reader.Read())
     {
         Response.Write("TokenType:" + reader.TokenType +"ValueType:" + reader.ValueType + "Value:" + reader.Value + "<br/>");
     }
}

3、序列化

///<summary>

///序列化JSON

///</summary>

protected String Serialize(Product product)
{
     String output = JavaScriptConvert.SerializeObject(product);
      return output;
}

4、反序列化

/// <summary>
/// 反序列化
/// </summary>

protected Product Deserialize(String jsonStr)
{
     try
     {

          Product product = (Product)JavaScriptConvert.DeserializeObject(jsonStr);
          return product;
     }
     catch(Exception ex)
     {
          return null;
     }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值