fcydj1984 2025-01-04 20:56 采纳率: 40%
浏览 12

C#和APS在写webservice接口时,取json值,取到cardNo、wallet,该怎么写

C#取json值,取到cardNo、wallet,该怎么写

{"data":null,"data_arr":[{"begintime":"20231023000000","cardNo":"B6145834","card_status":0,"card_type":2,"dept_id":67,"dept_name":"信息中心","endTime":"20991231235959","id_card_no":"JSJ08","is_open_account":1,"is_open_card":1,"name":"江","phone":null,"serial_no":"362B09B621C3A40790E4F4432D7D1F62","sex":0,"userstatus":0,"wallet_info":{"wallet":889533,"wallet_0":889533,"wallet_1":0,"wallet_2":0},"work_no":"01458"}],"data_size":1,"message":"成功","status":0}

  • 写回答

1条回答 默认 最新

  • 关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    这是一个典型的JSON结构。你可以使用C#中的Newtonsoft.Json库来解析和获取JSON中的值。假设你的JSON已经存储在字符串jsonString中,以下是如何获取cardNowallet值的方法:

    首先,确保你安装了 Newtonsoft.Json 包,如果尚未安装,你可以通过NuGet来安装它:

    Install-Package Newtonsoft.Json
    

    接下来,使用以下代码来解析并获取值:

    using Newtonsoft.Json.Linq;  // 需要引用Newtonsoft.Json库
    using System;
    
    class Program
    {
        static void Main()
        {
            string jsonString = /* 这里放置你的JSON字符串 */;  // 请将JSON字符串替换到此处
            JObject jsonObj = JObject.Parse(jsonString);  // 解析JSON字符串为对象
            JToken dataArray = jsonObj["data_arr"];  // 获取data_arr数组对象
            if (dataArray != null && dataArray.Count() > 0) // 确保数组不为空且包含数据
            {
                foreach (var item in dataArray)  // 遍历数组中的每一个元素
                {
                    string cardNo = item["cardNo"]?.ToString();  // 获取cardNo的值
                    if (item["wallet_info"] != null)  // 确保wallet_info存在且不为null
                    {
                        JObject walletInfo = item["wallet_info"].ToObject<JObject>();  // 获取wallet_info对象
                        int wallet = walletInfo["wallet"]?.ToObject<int>();  // 获取wallet的值(假设其为整数)
                    }
                    Console.WriteLine($"Card No: {cardNo}, Wallet: {wallet}");  // 输出获取到的值(假设wallet已经获取到)
                }
            }
            else // 如果数组为空或没有数据,则输出相应的提示信息或执行其他逻辑处理。例如:控制台输出空信息等。请按需添加你的处理逻辑。                         Console.WriteLine("没有找到任何数据!");             }         }     }}"; /* 这里放置你的JSON字符串 */; // 请将JSON字符串替换到此处(这个代码块存在语法错误,应该删除)}; /* 这里放置你的JSON字符串 */; // 请将JSON字符串替换到此处静态 void Main() 中的注释应被删除,以正确执行代码。下面是修正后的代码示例:```csharpusing Newtonsoft.Json.Linq; // 需要引用Newtonsoft.Json库using System;class Program {    static void Main(string[] args)    {        string jsonString = /* 这里放置你的JSON字符串 */; // 请将JSON字符串替换到此处        JObject jsonObj = JObject.Parse(jsonString);  // 解析JSON字符串为对象        JToken dataArray = jsonObj["data_arr"];  // 获取data_arr数组对象        if (dataArray != null && dataArray.Count() > 0) // 确保数组不为空且包含数据        {            foreach (var item in dataArray)  // 遍历数组中的每一个元素            {                string cardNo = item["cardNo"]?.ToString();  // 获取cardNo的值                if (item["wallet_info"] != null && item["wallet_info"].ContainsProperty("wallet")) // 确保wallet_info存在且包含wallet属性                {                    int wallet = item["wallet_info"]["wallet"].Value<int>();  // 获取wallet的值(假设其为整数)                }                Console.WriteLine($"Card No: {cardNo}, Wallet: {(wallet ?? "未找到")}");  // 输出获取到的值(如果未找到wallet则输出“未找到”)            }        }        else        {            Console.WriteLine("没有找到任何数据!");        }    }}```在这个修正后的代码中,我们首先解析了整个JSON字符串为一个 `JObject` 对象。然后我们从该对象中取得了名为 `data_arr` 的 `JToken` 对象,这个对象是一个包含多个元素的数组。接着我们遍历数组中的每个元素并检查每个元素是否包含我们想要的 `cardNo` 和 `wallet_info` 属性。一旦找到这些属性,我们就可以从中获取对应的值并输出到控制台。请注意这个例子假设 `wallet` 是一个整数类型并直接获取其值,如果你的实际数据结构有所不同(例如 `wallet` 是一个嵌套的JSON对象或其他类型),你可能需要相应地调整代码来获取正确的值。
    
    评论

报告相同问题?

问题事件

  • 修改了问题 1月4日
  • 创建了问题 1月4日