我正在尝试在C#中读取Json字符串,但是我无法弄清楚如何将字符串解析为C#.说我有以下Json字符串
[
{
"AppName": {
"Description": "Lorem ipsum dolor sit amet",
"Value": "1"
},
"AnotherAppName": {
"Description": "consectetur adipisicing elit",
"Value": "String"
},
"ThirdAppName": {
"Description": "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua",
"Value": "Text"
},
"Application": {
"Description": "Ut enim ad minim veniam",
"Value": "100"
},
"LastAppName": {
"Description": "quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat",
"Value": "ZZZ"
}
}
]
Run Code Online (Sandbox Code Playgroud)
我想使用像这样的格式将其解析为arraylist或字典
descriptionList["AppName"] = "Lorem ipsum dolor sit amet";
valueList["AppName"] = "1";
Run Code Online (Sandbox Code Playgroud)
我一直在玩Json.Net,但我见过的例子并没有让我清楚地知道我应该怎么做.实现这一目标的最佳方法是什么?不能像在jQuery中那样使用foreach语句吗?
AZ.*_*AZ. 44
我在我的项目中使用Json.net,效果很好.在你的情况下,你可以这样做来解析你的json:
编辑:我更改了代码,因此它支持读取您的json文件(数组)
要解析的代码:
void Main()
{
var json = System.IO.File.ReadAllText(@"d:\test.json");
var objects = JArray.Parse(json); // parse as array
foreach(JObject root in objects)
{
foreach(KeyValuePair<String, JToken> app in root)
{
var appName = app.Key;
var description = (String)app.Value["Description"];
var value = (String)app.Value["Value"];
Console.WriteLine(appName);
Console.WriteLine(description);
Console.WriteLine(value);
Console.WriteLine("\n");
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
AppName
Lorem ipsum dolor sit amet
1
AnotherAppName
consectetur adipisicing elit
String
ThirdAppName
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua
Text
Application
Ut enim ad minim veniam
100
LastAppName
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat
ZZZ
Run Code Online (Sandbox Code Playgroud)
顺便说一下,你可以使用LinqPad来测试你的代码,比我想的在Visual Studio中创建解决方案或项目更容易.
Kaj*_*thy 23
json:
[{"ew":"vehicles","hws":["car","van","bike","plane","bus"]},{"ew":"countries","hws":["America","India","France","Japan","South Africa"]}]
Run Code Online (Sandbox Code Playgroud)
c#代码:只取一个值,例如单词"bike".
//res=[{"ew":"vehicles","hws":["car","van","bike","plane","bus"]},{"ew":"countries","hws":["America","India","France","Japan","South Africa"]}]
dynamic stuff1 = Newtonsoft.Json.JsonConvert.DeserializeObject(res);
string Text = stuff1[0].hws[2];
Console.WriteLine(Text);
Run Code Online (Sandbox Code Playgroud)
输出:
bike
Run Code Online (Sandbox Code Playgroud)
Gui*_*e86 15
你可以尝试System.Web.Script.Serialization.JavaScriptSerializer:
var json = new JavaScriptSerializer();
var data = json.Deserialize<Dictionary<string, Dictionary<string, string>>[]>(jsonStr);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
204927 次 |
| 最近记录: |