我正在尝试将JSON文件导入C#中的对象(Mac上的VS 2017)以对其进行进一步操作。
我有这个JSON文件示例:
{
"subdomain": "mycompany",
"name": "MyCompany Inc",
"website": "https://www.mycompany.com",
"edition": "DIRECTORY",
"licensing":
{
"apps":
[
"boxnet"
]
},
"admin": {
"profile":
{
"firstName": "John",
"lastName": "Smith",
"email": "joe@mycompany.com",
"login": "joe@mycompany.com",
"mobilePhone": null
},
"credentials":
{
"password":
{
"value": "NotAPassword"},
"recovery_question":
{
"question": "Best Solution",
"answer": "MyOne"
}
}
}
}
}
所以我生成了一个C#库来创建一个要导入的对象类型:
using System;
namespace OrgCustom
{
using System;
using System.Net;
using System.Collections.Generic;
using Newtonsoft.Json;
public class Licensing
{
public List<string> apps { get; set; }
}
public class Profile
{
public string firstName { get; set; }
public string lastName { get; set; }
public string email { get; set; }
public string login { get; set; }
public object mobilePhone { get; set; }
}
public class Password
{
public string value { get; set; }
}
public class RecoveryQuestion
{
public string question { get; set; }
public string answer { get; set; }
}
public class Credentials
{
public Password password { get; set; }
public RecoveryQuestion recovery_question { get; set; }
}
public class Admin
{
public Profile profile { get; set; }
public Credentials credentials { get; set; }
}
public class Org
{
public string subdomain { get; set; }
public string name { get; set; }
public string website { get; set; }
public string edition { get; set; }
public Licensing licensing { get; set; }
public Admin admin { get; set; }
}
}
所以,我应该可以使用Newtownsoft.Json库轻松导入文件?
好吧,我的程序代码是:
using System;
using System.IO;
using System.Runtime.Serialization.Json;
using RestSharp;
using Newtonsoft.Json;
using OrgCustom;
namespace TestStart
{
class Program
{
static void Main(string[] args)
{
string JSONstring = File.ReadAllText("CreateOrgExample.json");
OrgCustom.Org objOrg = JsonConvert.DeserializeObject<OrgCustom.Org>(JSONstring);
Console.WriteLine(objOrg.ToString());
}
}
}
问题在于,当我运行它时,我从Deserialize行得到一条消息,JsonConvert是一个类型,在给定的上下文中无效。
我在这里做错了什么?我在使用C#MVA课程的JSON简介中看到的这一行,我相信它应该有用吗?!?!
提前致谢,
QuietLeni
答案 0 :(得分:1)
您的JSON在最后有一个额外的结束括号似乎是一个问题。因此,解析时可能会出错。
答案 1 :(得分:0)
我一眼就看不到语法错误。您可以检查程序集引用,然后使用global::
限定符结合intellisense来深入查看转换调用(但同样看起来对我来说也是正确的。)
另外,您的Password
类未定义JSON代码段中的RecoveryQuestion
属性。
但这并不妨碍Newtonsoft将JSON片段反序列化为您已定义的结构。