У меня есть этот ответ объекта JSON, и мне нужно десериализовать его, чтобы он стал объектом C #.
{
"sku": "00300X123",
"name": "Upxx Pipe (Subaru)",
"partsfinder":{
"lvl0":["2008","2011","2007","2001","2012","2007","2003","2013","2008","2004","2014","2009","2005","2004","2009","2005","2004","2010","2006","2009","2011","2007","2001","2012","2008","2003","2013","2008","2004","2014","2009","2005","2005","2010","2006","2005","2010","2006","2006","2015","2011","2007","2002","2012","2008","2003","2013","2009","2004","2014","2009","2005","2002","2010","2006","2006","2011","2012","2007","2011","2007","2002","2012","2008","2004","2013","2009","2004","2014","2009","2005","2003","2010","2006","2007"],"lvl1":["2008 > Subaru","2011 > Subaru","2007 > Subaru","2001 > Subaru","2012 > Subaru","2007 > Subaru","2003 > Subaru","2013 > Subaru","2008 > Subaru","2004 > Subaru","2014 > Subaru","2009 > Subaru","2005 > Subaru","2004 > Subaru","2009 > Subaru","2005 > Subaru","2004 > Subaru","2010 > Subaru","2006 > Subaru","2009 > Subaru","2011 > Subaru","2007 > Subaru","2001 > Subaru","2012 > Subaru","2008 > Subaru","2003 > Subaru","2013 > Subaru","2008 > Subaru","2004 > Subaru","2014 > Subaru","2009 > Subaru","2005 > Subaru","2005 > Subaru","2010 > Subaru","2006 > Subaru","2005 > Subaru","2010 > Subaru","2006 > Subaru","2006 > Subaru","2015 > Subaru","2011 > Subaru","2007 > Subaru","2002 > Subaru","2012 > Subaru","2008 > Subaru","2003 > Subaru","2013 > Subaru","2009 > Subaru","2004 > Subaru","2014 > Subaru","2009 > Subaru","2005 > Subaru","2002 > Subaru","2010 > Subaru","2006 > Subaru","2006 > Subaru","2011 > Subaru","2012 > Subaru","2007 > Subaru","2011 > Subaru","2007 > Subaru","2002 > Subaru","2012 > Subaru","2008 > Subaru","2004 > Subaru","2013 > Subaru","2009 > Subaru","2004 > Subaru","2014 > Subaru","2009 > Subaru","2005 > Subaru","2003 > Subaru","2010 > Subaru","2006 > Subaru","2007 > Subaru"],"lvl2":["2008 > Subaru > Outback (Gen2)","2011 > Subaru > WRX Sedan (GJ)","2007 > Subaru > Liberty Sedan GT Spec B (BL)","2001 > Subaru > WRX Sedan (GD)","2012 > Subaru > WRX Sedan (GJ)","2007 > Subaru > WRX Wagon (GG)","2003 > Subaru > Forester (SG)","2013 > Subaru > WRX Sedan (GJ)","2008 > Subaru > STi Hatch (GH)","2004 > Subaru > Liberty Sedan GT Spec B (BL)","2014 > Subaru > WRX Sedan (GJ)","2009 > Subaru > Liberty Wagon GT Spec B (BP)","2005 > Subaru > Forester (SG)","2004 > Subaru > STi Sedan (GD)","2009 > Subaru > WRX Sedan (GE)","2005 > Subaru > WRX Wagon (GG)","2004 > Subaru > Outback (Gen2)","2010 > Subaru > WRX Hatch (GH)","2006 > Subaru > STi Sedan (GD)","2009 > Subaru > Outback (Gen2)","2011 > Subaru > WRX Hatch (GP)","2007 > Subaru > Liberty Wagon GT Spec B (BP)","2001 > Subaru > WRX Wagon (GG)","2012 > Subaru > WRX Hatch (GP)","2008 > Subaru > Forester (SH)","2003 > Subaru > WRX Sedan (GD)","2013 > Subaru > WRX Hatch (GP)","2008 > Subaru > WRX Hatch (GH)","2004 > Subaru > Liberty Wagon GT Spec B (BP)","2014 > Subaru > WRX Hatch (GP)","2009 > Subaru > STi Hatch (GR)","2005 > Subaru > Liberty Sedan GT Spec B (BL)","2005 > Subaru > STi Sedan (GD)","2010 > Subaru > Forester (SH)","2006 > Subaru > Forester (SG)","2005 > Subaru > Outback (Gen2)","2010 > Subaru > WRX Sedan (GE)","2006 > Subaru > WRX Sedan (GD)","2006 > Subaru > WRX Wagon (GG)","2015 > Subaru > STi Sedan","2011 > Subaru > STi Sedan (GJ)","2007 > Subaru > STi Sedan (GD)","2002 > Subaru > WRX Sedan (GD)","2012 > Subaru > STi Sedan (GJ)","2008 > Subaru > Liberty Sedan GT Spec B (BL)","2003 > Subaru > WRX Wagon (GG)","2013 > Subaru > STi Sedan (GJ)","2009 > Subaru > Forester (SH)","2004 > Subaru > WRX Sedan (GD)","2014 > Subaru > STi Sedan (GJ)","2009 > Subaru > STi Sedan (GV)","2005 > Subaru > Liberty Wagon GT Spec B (BP)","2002 > Subaru > STi Sedan (GD)","2010 > Subaru > STi Hatch (GR)","2006 > Subaru > Liberty Sedan GT Spec B (BL)","2006 > Subaru > Outback (Gen2)","2011 > Subaru > Forester (SH)","2012 > Subaru > Forester (SH)","2007 > Subaru > Forester (SG)","2011 > Subaru > STi Hatch (GP)","2007 > Subaru > WRX Sedan (GD)","2002 > Subaru > WRX Wagon (GG)","2012 > Subaru > STi Hatch (GP)","2008 > Subaru > Liberty Wagon GT Spec B (BP)","2004 > Subaru > Forester (SG)","2013 > Subaru > STi Hatch (GP)","2009 > Subaru > Liberty Sedan GT Spec B (BL)","2004 > Subaru > WRX Wagon (GG)","2014 > Subaru > STi Hatch (GP)","2009 > Subaru > WRX Hatch (GH)","2005 > Subaru > WRX Sedan (GD)","2003 > Subaru > STi Sedan (GD)","2010 > Subaru > STi Sedan (GV)","2006 > Subaru > Liberty Wagon GT Spec B (BP)","2007 > Subaru > Outback (Gen2)"]
}
},
{
"sku": "00339980112",
"name": "Twin Supertone",
"partsfinder":{
"lvl0":["Universal Parts"]
}
}
Тогда у меня есть эти классы для хранения значения:
public class Item_Partsfinder
{
public string sku { get; set; }
public string name { get; set; }
public List<Partsfinder> partsfinder { get; set; }
}
public class Partsfinder
{
public List<string> lvl0 { get; set; }
}
Это коды для получения json и преобразования:
string jobsUrl = string.Format("https://xxxxx/export/test/xxx.json");
var uri = new Uri(string.Format(jobsUrl, string.Empty));
try
{
var response = client.GetAsync(uri, HttpCompletionOption.ResponseHeadersRead).Result;
var responseData = response.Content.ReadAsStringAsync();
responseData.Wait();
if (responseData.IsCompleted)
{
itemPartsfinder = JsonConvert.DeserializeObject<List<Item_Partsfinder>>(responseData.Result);
}
}
catch (Exception e)
{
var me = e.Message;
}
Тогда у меня есть эта ошибка:
Невозможно десериализовать текущий объект JSON (например, {"name": "value"}) в тип 'System.Collections.Generic.List`1 [oRouter.Model.Wrapper.Partsfinder]', поскольку для типа требуется массив JSON (например, [1,2,3]) для правильной десериализации.
Чтобы исправить эту ошибку, либо измените JSON на массив JSON (например, [1,2,3]), либо измените десериализованный тип так, чтобы это был нормальный тип .NET (например, не примитивный тип, например, целое число, а не тип коллекции, например, массив или список), которые можно десериализовать из объекта JSON. JsonObjectAttribute также можно добавить к типу, чтобы заставить его десериализоваться из объекта JSON.
Путь '[0] .partsfinder.lvl0', строка 8, позиция 7.
Пожалуйста, помогите мне исправить ошибку. Большое вам спасибо.