【问题标题】:get the value of JSON parameter c#获取 JSON 参数 c# 的值
【发布时间】:2017-07-05 21:27:48
【问题描述】:

我正在尝试使用 c# 从下面的 json 中获取 id 参数,但没有成功。这是一个双数组(用户/警告)

JSON:
contents = "{\"users\":[{\"id\":64,\"username\":\"100146\",\"firstname\":\"NAME\",\"lastname\":\"LASTNAME PROFILI\",\"department\":\"\",\"firstaccess\":0,\"lastaccess\":0"}],\"warnings\":[]}"

这是我尝试过的

JavaScriptSerializer serializer = new JavaScriptSerializer();
object obj1 = serializer.DeserializeObject(contents);
object obj2 = obj1["users"];
string id = obj2["id"];

我在 obj2 中遇到错误。 我不想创建一个类来解析JSON,只需从'users'数组中提取id值就足够了

感谢您的宝贵时间!

【问题讨论】:

  • 你得到什么错误?一些基本信息很有帮助
  • 错误是“错误 10 无法使用 [] 将索引应用于 'object' 类型的表达式,它出现在 'object obj2 = obj1["users"];'行

标签: c# jsonparser


【解决方案1】:

为此尝试使用 Newtwonsoft:

var json = "{\"users\":[{\"id\":64,\"username\":\"100146\",\"firstname\":\"NAME\",\"lastname\":\"LASTNAME PROFILI\",\"department\":\"\",\"firstaccess\":0,\"lastaccess\":0}],\"warnings\":[]}";

dynamic data = JObject.Parse(json);

var id = data.users[0].id;

【讨论】:

  • 正在下载 newtonsoft.. 如果合适,请尽快返回以标记为答案...谢谢!
【解决方案2】:

尝试使用动态而不是对象类型:

dynamic d = JObject.Parse("{\"users\":[{\"id\":64,\"username\":\"100146\",\"firstname\":\"NAME\",\"lastname\":\"LASTNAME PROFILI\",\"department\":\"\",\"firstaccess\":0,\"lastaccess\":0"}],\"warnings\":[]}");

var usersCount = d.users.Count;
var warningsCount = d.warnings.Count;

var id = d.users[0].id;

【讨论】:

  • hiago,我试试看,不知道 Newtwonsoft
【解决方案3】:

我没试过,但尝试使用 object1["users"]["id"]

【讨论】:

  • 嗨 urvil,我已经尝试过了,但出现了一些错误,fizx 使用的是 json.net
猜你喜欢
  • 2017-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-12
  • 1970-01-01
  • 2017-03-05
  • 2018-11-03
  • 1970-01-01
相关资源
最近更新 更多