获取JSON参数的值c#

get the value of JSON parameter c#

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

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 中遇到错误。 我不想创建一个 class 来解析 JSON ,只需从 'users' 数组中提取 id 值就足够了

感谢您的宝贵时间!

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

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;

为此尝试使用 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;

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