我有这个json文件,我想处理每个对象。
因此foreach正在进行中,但是甚至从堆栈中尝试了许多尝试,并且不会将这些对象提取到i
中。
任何想法出了什么问题? 我受此thread
的启发dynamic stuff = JsonConvert.DeserializeObject(File.ReadAllText(@"C:\Users\Paysami\Desktop\ccc\test.json"));
foreach (var i in stuff)
{
//Console.WriteLine("{0} {1} {2} {3} {4} {5}\n", i.test1, i.test2, i.test3, i.test4, i.test5, i.test6);
List<string> projectList = new List<string> { i.test1, i.test2, i.test3, i.test4, i.test5, i.test6 };
foreach (var x in projectList)
{
Debug.WriteLine(x.ToString());
}
}
答案 0 :(得分:0)
您的json不包含任何数组,您不能使用foreach来读取它。 您应该首先将json反序列化为一个类,然后使用反序列化的数据。
public class Json
{
public JsonObject Object1 { get; set; }
public JsonObject Object2 { get; set; }
public JsonObject Object3 { get; set; }
}
public class JsonObject
{
public string Test1 { get; set; }
public string Test2 { get; set; }
public string Test3 { get; set; }
public string Test4 { get; set; }
public string Test5 { get; set; }
public string Test6 { get; set; }
}
internal class Program
{
private static void Main(string[] args)
{
var staff = JsonConvert.DeserializeObject<Json>(File.ReadAllText(@"jsonPath"));
var jsonObjects = new List<JsonObject> { staff.Object1, staff.Object2, staff.Object3 };
jsonObjects.ForEach(jsonObject => Console.WriteLine($"{jsonObject.Test1} {jsonObject.Test2}"));
Console.ReadKey();
}
}
答案 1 :(得分:0)
您也可以使用First:
dynamic stuff = JsonConvert.DeserializeObject(File.ReadAllText(@"C:\.json"));
foreach (var i in stuff)
{
List<string> projectList = new List<string> { (string)i.First.t1, (string)i.First.t2, (string)i.First.t3, (string)i.First.t4, (string)i.First.t5};
foreach (var x in projectList)
{
Debug.WriteLine(x.ToString());
}
}
答案 2 :(得分:0)
您可以尝试此操作而无需添加任何课程
dynamic stuff = JsonConvert.DeserializeObject(File.ReadAllText(@"C:\Users\Paysami\Desktop\ccc\test.json"));
foreach (var i in stuff)
{
dynamic projectList = JsonConvert.DeserializeObject(JsonConvert.DeserializeObject(i.Value.ToString()).ToString());
foreach (var x in projectList)
{
Debug.WriteLine(x.Value.ToString());
}
}
答案 3 :(得分:0)
创建一个具有与JSON匹配的属性的model / dto类,并根据您的请求进行序列化/反序列化,以便正确解析您的数据。