我正在尝试测试Newtonsoft反序列化JSON数据。我想创建一个json对象数组并反序列化它们。
例如
我的代码:
public class TestJson
{
public string thing1
{
get;
set;
}
public string thing2
{
get;
set;
}
}
var json = ??????
我尝试了什么
var json = [{thing1:"f",thing2="x"},{thing1:"c",thing2="bx"}];
//The above line is givig compiler error in C#
List <TestJson> exam = new List<TestJson>();
exam = JsonConvert.DeserializeObject<List<TestJson>>(json);
我的目标是创建json aray pf对象,然后将它们反序列化为类。我正在使用Newtonsoft.Json进行反序列化。
答案 0 :(得分:1)
这里的问题似乎是json字符串:
&argstr[0][0]
首先,DeserializeObject方法需要一个字符串作为参数。 其次,JSON要求键名称用引号括起来。 第三,键/值对的JSON语法是关键:值不是键=值
因此正确的语法是:
var json = [{thing1:"f",thing2="x"},{thing1:"c",thing2="bx"}];
干杯!
答案 1 :(得分:1)
初始化对象后,可以使用Newtonsoft JSON进行序列化和反序列化。一个简单的例子是:
TestJson[] testArr = new TestJson[] { new TestJson() { thing1 = "a1", thing2 = "a2" },
new TestJson() { thing1 = "b1", thing2 = "b2" }
};
string json = JsonConvert.SerializeObject(testArr);
//Serialized string is: [{"thing1":"a1","thing2":"a2"},{"thing1":"b1","thing2":"b2"}]
TestJson[] newObject = JsonConvert.DeserializeObject<TestJson[]>(json);
答案 2 :(得分:0)
我认为你应该尝试使用这种语法:
string json = @"[{'thing1':'a1', 'thing2':'a2'}, {'thing1':'b1', 'thing2':'b2'}, {'thing1':'c1', 'thing2':'c2'}]";
我认为用这种方式编写很简单,对于设定值,你应该使用':',而不是'='就像at(thing2 =“x”)
我希望能帮助你。