내가 즐겁게 list. 뉴턴소프트 JSON 라이브러리를. 예를 들어 내가 만들어 갈 것 "이라고 '' 에서, 이 경우 인스턴스에서는 객체에는 조비치 .net 예외 (보통 박스트롤의 하위 클래스)
if (result is Exception)
var jobjectInstance = JObject.FromObject(result);
지금 내가 알고 있는 객체에 대한 데즈리얼리즈 library 는 JSON 텍스트 (예를 들면, 문자열)
// only works for text (string)
Exception exception = JsonConvert.DeserializeObject<Exception>(jsontext);
하지만 내가 찾고 있다.
// now i do already have an JObject instance
Exception exception = jobjectInstance.????
분명한 것은 내가 잘 갈 수 있는 '에서' 조비치 다시 JSON 텍스트 다음 데즈리얼리즈 기능을 제공하지만 뒤로 것 같다는 다는일은.
1, [우편] # 39 에 따르면, 이 it& 내가 긁어줄게 현재:
// pick out one album
JObject jalbum = albums[0] as JObject;
// Copy to a static Album instance
Album album = jalbum.ToObject<Album>();
이 문서에서 I found
JObject o = new JObject(
new JProperty("Name", "John Smith"),
new JProperty("BirthDate", new DateTime(1983, 3, 20))
);
JsonSerializer serializer = new JsonSerializer();
Person p = (Person)serializer.Deserialize(new JTokenReader(o), typeof(Person));
Console.WriteLine(p.Name);
'사람' 이 클래스 정의에 대한 /dev/raw/raw200 호환되어야 다음과 같습니다.
class Person {
public string Name { get; internal set; }
public DateTime BirthDate { get; internal set; }
}
, 와 # 39 의 최신 버전을 사용할 경우 don& JSON.net # 39 위, s, t need 사용자 정의 직렬화하지 TienDo& 참조하십시오 오토메이티드 (이하 업보테 경우 나를 p) 보다 간결한.
늦었음요, 만일의 사태에 대비해 1 정도의 다른 방법을 찾고 있다.
void Main()
{
string jsonString = @"{
'Stores': [
'Lambton Quay',
'Willis Street'
],
'Manufacturers': [
{
'Name': 'Acme Co',
'Products': [
{
'Name': 'Anvil',
'Price': 50
}
]
},
{
'Name': 'Contoso',
'Products': [
{
'Name': 'Elbow Grease',
'Price': 99.95
},
{
'Name': 'Headlight Fluid',
'Price': 4
}
]
}
]
}";
Product product = new Product();
//Serializing to Object
Product obj = JObject.Parse(jsonString).SelectToken("$.Manufacturers[?(@.Name == 'Acme Co' && @.Name != 'Contoso')]").ToObject<Product>();
Console.WriteLine(obj);
}
public class Product
{
public string Name { get; set; }
public decimal Price { get; set; }
}