c# Newtonsoft.Json

博客主要介绍了JSON相关操作,包括将对象转换为字符串的序列化操作,以及将字符串转换为JSON对象的反序列化操作,还提及了官方文档。
  • 对象转字符串 序列化
JsonConvert.SerializeObject(data)
  • 字符串转json 对象 反序列化
// JToken 是 JObject的基类
JsonConvert.DeserializeObject<JToken>(【string】);
JObject.Parse()
string json = @"{
  'channel': {
    'title': 'Star Wars',
    'link': 'http://www.starwars.com',
    'description': 'Star Wars blog.',
    'obsolete': 'Obsolete value',
    'item': []
  }
}";

JObject rss = JObject.Parse(json);

JObject channel = (JObject)rss["channel"];

channel["title"] = ((string)channel["title"]).ToUpper();
channel["description"] = ((string)channel["description"]).ToUpper();

channel.Property("obsolete").Remove();

channel.Property("description").AddAfterSelf(new JProperty("new", "New value"));

JArray item = (JArray)channel["item"];
item.Add("Item 1");
item.Add("Item 2");

Console.WriteLine(rss.ToString());
// {
//   "channel": {
//     "title": "STAR WARS",
//     "link": "http://www.starwars.com",
//     "description": "STAR WARS BLOG.",
//     "new": "New value",
//     "item": [
//       "Item 1",
//       "Item 2"
//     ]
//   }
// }

官方文档

C#中,Newtonsoft.Json是一个广泛使用的JSON处理库,以下是其使用方法及示例: ### 安装Newtonsoft.Json包 可以通过NuGet包管理器来安装该库,如添加Newtonsoft.Json包的操作示例: ```plaintext GET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/11.0.2/newtonsoft.json.11.0.2.nupkg OK https://api.nuget.org/v3-flatcontainer/newtonsoft.json/11.0.2/newtonsoft.json.11.0.2.nupkg 98 毫秒 正在安装 Newtonsoft.Json 11.0.2。 ``` 此示例展示了从指定链接获取并安装Newtonsoft.Json 11.0.2版本的过程[^2]。 ### 解析JSON数组示例 下面是使用Newtonsoft.Json解析JSON数组的代码示例: ```csharp using System; using System.Collections.Generic; using UnityEngine; using Newtonsoft.Json; public class Json : MonoBehaviour { string json = "[{\"Id\":2,\"Age\":18},{\"Id\":4,\"Age\":15}]"; void Start() { var info = JsonConvert.DeserializeObject<List<UserInfo>>(json); foreach (var item in info) { Debug.Log(item.Id +":" + item.Age); } } } [Serializable] public class UserInfo { public int Id { get; set; } public int Age { get; set; } } ``` 在这个示例中,定义了一个JSON数组字符串`json`,使用`JsonConvert.DeserializeObject`方法将其反序列化为`List<UserInfo>`对象,然后遍历该列表并输出每个`UserInfo`对象的`Id`和`Age`属性[^4]。 ### 获取数组示例 在使用`Newtonsoft.Json.Linq`时,不支持直接获取数组,但可以获取`List`然后再转化为数组,示例代码如下: ```csharp string[] favorites; if (obj["Favorites"] != null) favorites = obj["Favorites"].Value<List<string>>().ToArray(); ``` 此代码从`obj`对象中尝试获取`Favorites`属性,如果该属性存在,则将其值转换为`List<string>`,然后再转换为字符串数组赋值给`favorites`变量[^5]。 ### 实用参考资源 - JSON验证工具:http://jsonlint.com/ - JSON简明教程:http://www.w3school.com.cn/json/ - Newtonsoft.Json类库下载:http://json.codeplex.com/ [^3]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值