2017-07-25 29 views
0

我使用Xamarin形式和Newtonsoft反序列化如何反序列化与数组对象的json?使用Newtonsoft xamarin

它不工作:

var itens = JsonConvert.DeserializeObject<List<Model.Loja>>(json); 

这里是我的JSON:

{ 
    "one": { 
    "two": [ 
     { 
     "cod": 142, 
     "nome": "name", 
     "phone": "23423", 
     "endereco": "address", 
     "cidade": "city" 
     }, 
     { 
     "cod": 142, 
     "nome": "name", 
     "phone": "23423", 
     "endereco": "address", 
     "cidade": "city" 
     } 
    ] 
    } 
} 
+0

显示'Model.Loja'的代码。 – nbokmans

+0

“one”是包含数组“two”的对象。你应该有一个有趣的模型 –

+0

哈哈......它的一个例子......但我用子串解决了它:D 谢谢你们 –

回答

0

问题是“[]”。 我用

response = json.Substring(json.IndexOf('[')); 
response = json.Substring(0, json.LastIndexOf(']') + 1); 

并解决了它。

1

你的模型需要匹配您的JSON结构体。尝试使用这些类:

public class RootObject 
{ 
    public One one { get; set; } 
} 

public class One 
{ 
    public List<Loja> two { get; set; } 
} 

public class Loja 
{ 
    public int cod { get; set; } 
    public string nome { get; set; } 
    public string phone { get; set; } 
    public string endereco { get; set; } 
    public string cidade { get; set; } 
} 

然后反序列化这样的:

List<Loja> items = JsonConvert.DeserializeObject<RootObject>(json).one.two; 
0

,您可以拨打特定的模型类为JSON,尝试使用http://json2csharp.com/

,然后你可以分析它使用newtonsoft。

如果您使用的是json2chsarp,那么您的特定类将称为RootObject,但您可以将其重命名为与您的模型相匹配。

var obj = JsonConvert.DeserializeObject<YourSpecificClass>(json); 
相关问题