我正在尝试解决这个问题,但找不到任何解决方案。
这是C#代码。
string unraw_json = reader.ReadToEnd();
var objects = JArray.Parse(unraw_json);
foreach (JObject items in objects)
foreach (KeyValuePair<String, JToken> app in items)
{
var appName = app.Key;
var username = (String)app.Value["username"];
var password = (String)app.Value["password"];
当我到达var appName = "username"
时(第9行)调试var username
时,会抛出该错误。
我已经尝试过将json包含在大括号中,但是它在var appName
上引发了错误。我也尝试过使用不同的解析和不同的库,但是我想使用Newtonsoft.Json.Linq库。谁能帮我吗?谢谢。
这是JSON文件:
[
{
"username": "root",
"password": "toor"
}
]
答案 0 :(得分:1)
您的内部foreach
遍历KeyValuePair
中的每个 items
。 app
是KeyValuePair<String, JToken>
,其中 key 是"username"
,而 value 是包含{{1 }}。您正在JToken
和"root"
索引一层太深。
由于您已经知道所需的键,因此根本不需要遍历["username"]
。只需直接索引["password"]
:
items