首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Json字符串获取值

从Json字符串获取值
EN

Stack Overflow用户
提问于 2016-12-09 16:41:33
回答 1查看 26.1K关注 0票数 2

我有个Json刺,就像

代码语言:javascript
运行
复制
var Result= [{"CompanyID":32,"Roles":["Admin"]}]

我需要从中获取CompanyID的值。

我试过这样的东西

代码语言:javascript
运行
复制
var obj = JObject.Parse(Result);
int Id=obj["CompanyID"];

但是它抛出了一些错误:“从JsonReader读取JObject时出错。当前的JsonReader项不是一个对象: StartArray。路径'',行1,位置1”。

有人能帮上忙吗

提前感谢您的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-09 16:46:26

实际的问题是,当您实际拥有一个对象数组时,您正试图将其解析为JObject。您可以首先将其解析为一个数组,然后为该数组编制索引以选择唯一的对象,选择CompanyID键,然后以int的形式获取该值

代码语言:javascript
运行
复制
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>();

或者,如果JSON是您经常使用的结构,也可以将JSON映射到具体类型。这是更有益的,因为您将有编译时检查-如果在选择一个键时出现拼写错误或大写错误。

代码语言:javascript
运行
复制
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; }
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41056315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档