You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Newtonsoft将含brand_id的JSON字符串转换为数字数组

使用Newtonsoft.Json将带brand_id的JSON数组转换为纯数字数组

没问题,这事儿用Newtonsoft.Json(也就是大家常说的Json.NET)处理起来很顺手,我给你两种实用的实现方式,你可以根据自己的代码场景来选:

方法一:通过反序列化到实体类实现

这种方式适合你需要多次复用这个结构的场景,先定义一个对应JSON结构的实体类,再通过LINQ提取转换:

// 定义与JSON结构匹配的实体类
public class BrandItem
{
    public string brand_id { get; set; }
}

// 具体转换代码
string inputJson = "[{\"brand_id\":\"112\"},{\"brand_id\":\"114\"},{\"brand_id\":\"14\"}]";

// 1. 反序列化JSON字符串为实体列表
var brandList = JsonConvert.DeserializeObject<List<BrandItem>>(inputJson);

// 2. 提取brand_id并转换为int数组
int[] numericArray = brandList.Select(item => int.Parse(item.brand_id)).ToArray();

方法二:直接使用JArray解析(无需定义实体类)

如果只是临时处理这个JSON,不想额外定义类的话,可以直接用Newtonsoft的JArray来操作,更灵活:

string inputJson = "[{\"brand_id\":\"112\"},{\"brand_id\":\"114\"},{\"brand_id\":\"14\"}]";

// 1. 解析JSON为JArray
JArray brandJArray = JArray.Parse(inputJson);

// 2. 遍历JArray提取并转换值
int[] numericArray = brandJArray
    .Select(jObj => int.Parse(jObj["brand_id"].ToString()))
    .ToArray();

额外提示:处理可能的转换异常

如果你的输入JSON里可能存在非数字的brand_id,直接用int.Parse会抛出异常,建议用int.TryParse做安全处理,比如过滤掉无效值:

// 方法一的安全版本
int[] safeNumericArray = brandList
    .Where(item => int.TryParse(item.brand_id, out _)) // 过滤掉无法转换的项
    .Select(item => int.Parse(item.brand_id))
    .ToArray();

// 方法二的安全版本
int[] safeNumericArray = brandJArray
    .Where(jObj => int.TryParse(jObj["brand_id"].ToString(), out _))
    .Select(jObj => int.Parse(jObj["brand_id"].ToString()))
    .ToArray();

这样就能得到你想要的[112,114,14]格式的纯数字数组啦。

内容的提问来源于stack exchange,提问作者ROSHITH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 17:12:48