C# C和json数据解析
我在数据解析方面有一个问题,我在Visual Studio中使用C,我需要一个json文件的解析算法。结构如下:C# C和json数据解析,c#,json,visual-studio,C#,Json,Visual Studio,我在数据解析方面有一个问题,我在Visual Studio中使用C,我需要一个json文件的解析算法。结构如下: { "objects": { "minecraft/sounds/mob/stray/death2.ogg": { "hash": "d48940aeab2d4068bd157e6810406c882503a813", "size": 18817 }, "minecraft/sounds/mob/husk/step4.ogg": {
{
"objects": {
"minecraft/sounds/mob/stray/death2.ogg": {
"hash": "d48940aeab2d4068bd157e6810406c882503a813",
"size": 18817
},
"minecraft/sounds/mob/husk/step4.ogg": {
"hash": "70a1c99c314a134027988106a3b61b15389d5f2f",
"size": 9398
},
"minecraft/sounds/entity/rabbit/attack2.ogg": {
"hash": "4b90ff3a9b1486642bc0f15da0045d83a91df82e",
"size
我想拉minecraft/sounds/mob/trased/death2.ogg并散列数据
我的C代码:
HttpWebRequest reqobje = WebRequest.Create(assetsurl) as HttpWebRequest;
using (HttpWebResponse response = reqobje.GetResponse() as HttpWebResponse)
{
StreamReader objejsonsr = new StreamReader(objectjson);
jsonVerisi = objejsonsr.ReadToEnd();
}
parser = JObject.Parse(jsonVerisi);
JToken job = parser["objects"];
由于您使用的是json.net,因此可以将字符串反序列化为所需的任何对象。下面的示例是带有dictionary的匿名类型,因此您可以使用返回的动态键:
var result = JsonConvert.DeserializeAnonymousType(jsonVerisi, new { objects =
new Dictionary<string, Dictionary<string, string>>() });
var objects = result.objects; // key/value;
请分享您收到的错误以及您试图如何解析它的示例代码。您使用的是Json.net还是其他库?好的,您有问题。您尝试了什么代码?有很多使用C解析JSON的例子。如前所述,您的问题并不表明您有任何努力。您尝试过什么?我没有看到任何使用newtonsoft的codeim可能与刚才在答案中添加的示例重复。如果移动到PROD环境,可以考虑为字典键添加额外的空检查,但希望这能让您开始!非常感谢,我已经找了一个星期了。
var objects = result.objects
.Select(m => new
{
Path = m.Key,
Hash = m.Value["hash"],
Size = int.TryParse(m.Value["size"], out var value) ? value : 0,
}).ToList();
var path = objects[0].Path; // Get the path of the first object