내 JSON은 다음과 같습니다.
{"t":"1339886","a":true,"data":[],"Type":[['Ants','Biz','Tro']]}
C # 용 Newtonsoft JSON.NET deserialize 라이브러리를 찾았습니다. 다음과 같이 사용하려고했습니다.
object JsonDe = JsonConvert.DeserializeObject(Json);
JsonDe
모든 “유형”데이터를 얻기 위해 개체에 액세스하려면 어떻게 해야합니까? 루프로 시도했지만 개체에 열거자가 없기 때문에 작동하지 않습니다.
답변
JSON에있는 필드를 보유하는 클래스를 구현할 수 있습니다.
class MyData
{
public string t;
public bool a;
public object[] data;
public string[][] type;
}
그런 다음 DeserializeObject의 일반 버전을 사용합니다.
MyData tmp = JsonConvert.DeserializeObject<MyData>(json);
foreach (string typeStr in tmp.type[0])
{
// Do something with typeStr
}
문서 : JSON 직렬화 및 역 직렬화
답변
훨씬 더 쉬운 솔루션 : 동적 유형 사용
Json.NET 4.0 릴리스 1부터는 기본 동적 지원이 있습니다. 클래스를 선언 할 필요가 없으며 dynamic
다음을 사용하십시오 .
dynamic jsonDe = JsonConvert.DeserializeObject(json);
모든 필드를 사용할 수 있습니다.
foreach (string typeStr in jsonDe.Type[0])
{
// Do something with typeStr
}
string t = jsonDe.t;
bool a = jsonDe.a;
object[] data = jsonDe.data;
string[][] type = jsonDe.Type;
동적 을 사용하면 데이터를 보관하기 위해 특정 클래스를 만들 필요가 없습니다.
답변
당으로 Newtonsoft 문서 당신은 또한이 같은 익명의 객체 직렬화 수 :
var definition = new { Name = "" };
string json1 = @"{'Name':'James'}";
var customer1 = JsonConvert.DeserializeAnonymousType(json1, definition);
Console.WriteLine(customer1.Name);
// James