C# 从Json字符串获取值
我有一个像C# 从Json字符串获取值,c#,json,C#,Json,我有一个像 var Result= [{"CompanyID":32,"Roles":["Admin"]}] 我需要从中得到CompanyID的价值 我试过类似的东西 var obj = JObject.Parse(Result); int Id=obj["CompanyID"]; 但它抛出了一些错误“从JsonReader读取JObject时出错。当前JsonReader项不是对象:StartArray.Path“”,第1行,位置1。” 有人能帮忙吗 提前感谢您的帮助。实际的问题是,当您实
var Result= [{"CompanyID":32,"Roles":["Admin"]}]
我需要从中得到CompanyID的价值
我试过类似的东西
var obj = JObject.Parse(Result);
int Id=obj["CompanyID"];
但它抛出了一些错误“从JsonReader读取JObject时出错。当前JsonReader项不是对象:StartArray.Path“”,第1行,位置1。”
有人能帮忙吗
提前感谢您的帮助。实际的问题是,当您实际拥有一个对象数组时,您试图将其解析为
JObject
。您可以首先将其解析为一个数组,然后索引该数组以选择唯一的对象,然后选择CompanyID
键,然后获取值作为int
var Result = "[{\"CompanyID\":32,\"Roles\":[\"Admin\"]}]";
// Parse your Result to an Array
var jArray = JArray.Parse(Result);
// Index the Array and select your CompanyID
var obj = jArray[0]["CompanyID"].Value<int>();
var Result=“[{\'CompanyID\':32,\'Roles\':[\'Admin\']}]”;
//将结果解析为数组
var jArray=jArray.Parse(结果);
//为数组编制索引并选择您的公司ID
var obj=jArray[0][“CompanyID”].Value();
或者,您也可以将JSON映射到一个具体类型,如果它是您经常使用的结构的话。这是更有益的,因为您将有编译时检查-在发生拼写错误或大写错误时,选择一个键
class Program
{
static void Main(string[] args)
{
var Result = "[{\"CompanyID\":32,\"Roles\":[\"Admin\"]}]";
var cList = JsonConvert.DeserializeObject<List<Company>>(Result);
var obj = cList.First().CompanyID;
}
}
public class Company
{
public int CompanyID { get; set; }
public List<string> Roles { get; set; }
}
类程序
{
静态void Main(字符串[]参数)
{
var Result=“[{\'CompanyID\':32,\'Roles\':[\'Admin\']}]”;
var cList=JsonConvert.DeserializeObject(结果);
var obj=cList.First().CompanyID;
}
}
公营公司
{
public int CompanyID{get;set;}
公共列表角色{get;set;}
}