c# jobject 解析

本文介绍如何使用Newtonsoft.Json库解析特定格式的JSON数据,并通过C#代码提取其中的user_list信息。

下载Newtonsoft.Json,记得添加引用using Newtonsoft.Json.Linq;

Jobject的内容格式如下:关键是怎么把user_list中的内容提取出来

{

  "error_code": 0,
  "error_msg": "SUCCESS",
  "log_id": 3014595066,
  "timestamp": 1527234617,
  "cached": 0,
  "result": {
    "face_token": "49d58eacd7811e463429a1ae10b42173",
    "user_list": [
      {
        "group_id": "NR",
        "user_id": "1028867728",
        "user_info": "cactus0117",
        "score": 97.499450683594
      }
    ]
  }

}

//定义的类

public class SearchFaceMatchInfo
{
            public JObject OriginInfo;
            public string error_code;
            public string error_msg;
            public string log_id;
            public string timestamp;
            public string cached;
            public string face_token;
            public string group_id;
            public string user_id;
            public string user_info;
            public float score;
}

SearchFaceMatchInfo SearchFaceMatchInfo = new SearchFaceMatchInfo();

SearchFaceMatchInfo.log_id = result.Value<string>("log_id");//log_id
SearchFaceMatchInfo.timestamp = result.Value<string>("timestamp");//timestamp
SearchFaceMatchInfo.cached = result.Value<string>("cached");//cached
SearchFaceMatchInfo.cached = result["result"]["face_token"].ToString();//face_token

JArray res = result["result"].Value<JArray>("user_list");
JObject j = JObject.Parse(res[0].ToString());
SearchFaceMatchInfo.group_id = j.Value<string>("group_id");//group_id
SearchFaceMatchInfo.user_id = j.Value<string>("user_id");//user_id
SearchFaceMatchInfo.user_info = j.Value<string>("user_info");//user_info
SearchFaceMatchInfo.score = j.Value<float>("score");//score


### C#JObject 的使用方法 #### 创建 JSON 对象 可以利用 `JObject` 类创建新的 JSON 对象实例。下面是一个简单的例子来展示如何构建一个 JSON 对象: ```csharp using Newtonsoft.Json.Linq; // 构建一个新的 JSON 对象 var person = new JObject( new JProperty("name", "John"), new JProperty("age", 30), new JProperty("city", "New York") ); Console.WriteLine(person.ToString()); ``` 这段代码会输出如下格式的 JSON 字符串[^1]。 #### 解析 JSON 字符串 当接收到 JSON 格式的字符串时,可以通过 `JObject.Parse()` 方法将其转换成 `JObject` 实例以便于访问其中的数据字段: ```csharp string jsonString = "{\"order\":\"123\",\"data\":{\"gwd\":\"example\",\"pageSize\":10,\"pageNo\":1}}"; JObject jsonObj = JObject.Parse(jsonString); // 获取顶层属性值 string orderValue = (string)jsonObj["order"]; // 访问嵌套的对象并读取其内部成员 string gwdValue = (string)((JObject)jsonObj["data"])["gwd"]; int? pageSizeValue = (int?)((JObject)jsonObj["data"])["pageSize"]; int? pageNoValue = (int?)((JObject)jsonObj["data"])["pageNo"]; Console.WriteLine($"Order: {orderValue}, GWD: {gwdValue}, Page Size: {pageSizeValue}, Page No.: {pageNoValue}"); ``` 此段程序展示了怎样处理包含多层结构的复杂 JSON 数据[^2]。 #### 修改现有 JSON 对象 除了创建和解析外,还可以轻松地修改现有的 `JObject` 实例内的键值对: ```csharp person.Add(new JProperty("email", "john@example.com")); // 添加新属性 person["age"] = 31; // 更新已有属性 person.Remove("city"); // 移除某个属性 foreach (var prop in person.Properties()) { Console.WriteLine($"{prop.Name}: {prop.Value}"); } ``` 上述片段说明了增删改查的操作方式。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值