2011-08-31 3 views
0

내가, 내가하는 jobject 인스턴스를이 중 JSON의 무리 ..을 JsonWriter를 받아 덤프하는 "기존의"방법을 원하는, 그래서 나는 다음과 같은 시도 :작성기를 사용하여 ArgumentException을 throw하는 경우 JObject의 CreateWriter의 요점은 무엇입니까?

JObject myObj = new JObject(); 
using (var writer = myObj.CreateWriter()) 
{ 
    TheLegacyMethod(writer); 
} 
// TODO: Do stuff with the nicely initialized JObject instance 

문제는 처음이다 시간 "TheLegacyMethod는"실제로 작업을 수행 할 작가를 사용하려고 시도합니다 :

writer.WriteStartObject(); 

내가하는 jobject가하는 jobject에 추가 할 수 없습니다 불평 ArgumentException이 얻을.

나는 StringBuilder에 먼저 Json을 작성한 후 결과에 JObject.Parse()를 수행하여 냄새 나는 해결 방법을 사용했지만이 중간을 피하려고합니다.

JObject.CreateWriter()를 사용할 수없는 이유는 무엇입니까? 내가 놓친 게 있니? (나는 희망한다).

감사합니다,

타일러

답변

2

속성 이름의 값이 이전에 작성해야하는 객체에 값을 쓰기.

+0

아하! 레거시 메서드는 바깥 쪽 "{}"을 작성하여 완전한 (이름이없는) 객체에 모든 것을 래핑했습니다 ...하지만 이미 JObject 인스턴스로 시작할 때 이것은 중복되어 Json을 위반합니다 (즉, like this "{{"prop ": value,"prop ": value}}"). – Tyler

+0

빠른 응답을 보내 주셔서 감사합니다! – Tyler