2009-03-24 9 views
2

J'ai la structure de classe suivanteJson importation échoue - C#

public class AreaFields 
{ 
    public List<Fields> Fields { set; get; } 
} 

public class Fields 
{ 
    public string Name { set; get; } 
    public string Value {set; get; } 
} 

Lorsque j'exporte vers JSON en utilisant Jayrock.Json.Conversion.JsonConvert.ExportToString(List<AreaField> obj), tout fonctionne bien. Le problème est lorsque je tente de l'importer à une liste de AreaField, l'importation native échoue. Ce que j'essaie de faire est

Jayrock.Json.Conversion.JsonConvert.Import(strJson) 

Existe-t-il un moyen de remplacer la méthode d'importation?

EDIT: Oui, jayrock connaît le type de l'objet. Je suppose qu'il doit faire quelque chose avec moi en sérialisant une liste.

Export - 
List<AreaField> list = GetAListOfAreaFields(); 
string sJson = Jayrock.Json.Conversion.JsonConvert.ExportToString(list) 

Import - 
List<AreaField> list = (AreaField)JsonConvert.Import(typeof(AreaField, sJson); 

Exception - Impossible d'importer AreaField à partir d'une valeur de tableau JSON.

Répondre

0

"Ça ne marche pas" n'est pas un bon début. Exception? Mauvaise donnée? Est-ce que Jayrock connaît le type de l'objet?

AreaFields af = (AreaFields)Jayrock.Json.Conversion.JsonConvert.Import(typeof(AreaFields), strJson); 
1

On dirait que vous exportez un List<AreaField> mais en essayant d'importer un AreaField (singulier). Essayez:

List<AreaField> list = (List<AreaField>)JsonConvert.Import(typeof(List<AreaField>, sJson); 
0

La liste <> ne fonctionne pas, mais la matrice fonctionne. Comme ceci:

AreaField[] list = JsonConvert.Import<AreaField[]>(sJson);