我正在尝试用JObject
的数组填充对象details
。这些信息在作为CCD_ 4的CCD_。
通过以下代码,我得到以下错误:
Newtonsoft.Json.JsonReaderException : After parsing a value an unexpected character was encountered
JArray addresses = new JArray();
foreach (AddressModel address in contactAddresses)
{
addresses.Add(JObject.Parse(
@"{""street"":""" + address.Street +
@"""city"":""" + address.City +
@"""postalCode"":""" + address.PostalCode +
@"""}"));
}
details.Add(new JProperty("addresses", addresses));
我做错了什么?
您缺少每个数据字段周围的右引号,以及它们之间的逗号。你需要这样的东西;
addresses.Add(JObject.Parse(
@"{""street"":""" + address.Street + "", " +
@"""city"":""" + address.City + "", " +
@"""postalCode"":""" + address.PostalCode +
@"""}"));
您的最终目标似乎是最终得到一些表示地址列表的JSON。我知道你提到了JObject和JArray,但你认为实现很难看。这里有一个替代方案。
string json = JsonConvert.SerializeObject(contactAddresses);
生成的json
应该是这样的(一旦格式化):
[
{"Street": "123 Mockingbird Lane", "City": "New York City", "PostalCode": "11111"},
{"Street": "1600 Penn Ave", "City": "Washington DC", "PostalCode": "22222"},
{"Street": "2400 University Dr", "City": "Fort Worth", "PostalCode": "33333"},
]
如果您希望输出以不同的方式显示,则可以将属性应用于AddressModel
类的属性。