我只是尝试反序列化一个Json数组,但它不起作用。 我可以在输出框中阅读以下消息:
“Newtonsoft.Json.JsonReaderException:无效的JavaScript属性 标识符字符:'。路径'[0]',第2行,第37位。“
我的代码:
using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;
using Newtonsoft;
using System.Collections.Generic;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace JsonTest
{
[Activity(Label = "JsonTest", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
// Get our button from the layout resource,
// and attach an event to it
Button button = FindViewById<Button>(Resource.Id.MyButton);
button.Click += delegate
{
string json = @"[{
id': '1',
'nom': 'zooz',
'prenom': 'Jack'
}, {
'id': '2',
'nom': 'toto',
'prenom': 'Blaireau'
}]";
var a = JsonConvert.DeserializeObject<List<Person>>(json);
//JArray b = JArray.Parse(json);
Console.WriteLine(a);
// james@example.com};
};
}
public class Account
{
public string id { get; set; }
public string nom { get; set; }
public string prenom { get; set; }
}
public class Person
{
public Account person;
}
}
}
感谢您的帮助。
答案 0 :(得分:2)
ID
中缺少单引号string json = @"[{
'id': '1',
'nom': 'zooz',
'prenom': 'Jack'
},
{
'id': '2',
'nom': 'toto',
'prenom': 'Blaireau'
}]";
模型Person
也需要保留Account
public class Person
{
public List<Account> person;
}
答案 1 :(得分:0)
您的JSON缺少单引号,它也与List<Account>
而不是List<Person>
相对应。此JSON应成功反序列化为List
[{ 'person':{
'id': '1',
'nom': 'zooz',
'prenom': 'Jack'
}}, { 'person': {
'id': '2',
'nom': 'toto',
'prenom': 'Blaireau'
}}]