c# - 尝试解析 JSON 时出现 JsonToken.StartArray 错误
问题描述
我有一个需要解析的 JSON,我将其解析如下:
JObject json = JObject.Parse(jsonProfile);
JSON 的格式为:
[{ "Id": "mahesh", "GeneralInfo": { "FirstName": "sharma", "LastName": "kanth", "PreferredFirstName": "Akash", "Title": "Designer", "InformalTitle": "Designer", "Gender": "", "Discipline": "", "Department": "Strategy", "BusinessUnit": "", "BrandFunction": "", "ParentAgency": "Public", "Agency": "fish", "AgencyImagePath": "", "Hub": "Public", "SubRegion": "America", "Region": "Americas", "Continent": "North America", "Country": "United States", "State": "Oregon", "Location": "Portland", "Email": "sharma@gmail.com", "SkypeName": "", "Phone": "" }}]
当我运行它时,我收到以下错误:
{"Error reading JObject from JsonReader. Current JsonReader item is not an object: StartArray. Path '', line 1, position 1."}
如何处理“[”括号?
解决方案
如果你知道 json,你可以直接用 DeserializeObject 解析你的 json:
var root = JsonConvert.DeserializeObject<List<RootObject>>(json);
Console.WriteLine(root[0].GeneralInfo.Email);
输出
sharma@gmail.com
类(使用json2csharp生成,但 vs 也可以)
public class GeneralInfo
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string PreferredFirstName { get; set; }
public string Title { get; set; }
public string InformalTitle { get; set; }
public string Gender { get; set; }
public string Discipline { get; set; }
public string Department { get; set; }
public string BusinessUnit { get; set; }
public string BrandFunction { get; set; }
public string ParentAgency { get; set; }
public string Agency { get; set; }
public string AgencyImagePath { get; set; }
public string Hub { get; set; }
public string SubRegion { get; set; }
public string Region { get; set; }
public string Continent { get; set; }
public string Country { get; set; }
public string State { get; set; }
public string Location { get; set; }
public string Email { get; set; }
public string SkypeName { get; set; }
public string Phone { get; set; }
}
public class RootObject
{
public string Id { get; set; }
public GeneralInfo GeneralInfo { get; set; }
}
推荐阅读
- visual-studio-2015 - 使用 pat 文件自动运行 SSIS
- asp.net-mvc - 没有“IEnumerable”类型的 ViewData 项
' 具有键 'pkiBusinessUnitId' - nginx - Nginx 仅在子目录中提供静态文件
- python - 得到一个错误:目标函数必须返回一个标量,而我试图最小化一个函数
- c++ - wxWidgets中的'delete'和'destroy'有什么区别?
- apache-camel - 如何过滤 Apache Camel Spring-WS 服务的 HTTP 标头
- python - SqlAlchemy alembic 迁移文件不使用 env.py 中的连接设置?
- node.js - 路由 MERN 路由在本地主机上工作,但不在网络服务器上
- http - 从 Jmeter 中的 xml 文件获取链接以发出 http 请求
- jquery - 更改 jQuery Mobile 页脚按钮的高度