2011-09-26 4 views
28

Json.Net에서 속성 이름을 따옴표없이 serialize하고 Google에서 설명서를 찾기가 어려워졌습니다. 어떻게해야합니까?Json.Net - 따옴표없이 속성 이름을 일련 번호로 지정

큰 Json 렌더링의 아주 작은 부분이므로 속성 속성을 추가하거나 클래스의 직렬화 메서드를 무시하는 것이 좋습니다.

"event_modal": 
{ 
    "href":"file.html", 
    "type":"full" 
} 

그리고 내가 좋아하는 렌더링하기 위해 그것을 얻을 수 있었으면 해요 : :

현재는이 같은 렌더링 (hreftype 인용 부호없이입니다) 클래스에서

"event_modal": 
{ 
    href:"file.html", 
    type:"full" 
} 

:

public class ModalOptions 
{ 
    public object href { get; set; } 
    public object type { get; set; } 
} 
+4

유효하지 않은 JSON입니다. 왜 이걸하고 싶어? –

+4

[JSON에서 각 이름이 인용 된 이유는 무엇입니까?] (http://stackoverflow.com/questions/2067974/in-json-why-is-each-name-quoted) –

+1

Marcello - 이 데이터를 제공하는 타사 jQuery 플러그인 – Overflew

답변

34

가능하지만, 에 대해서는 Marcelo와 Marc이 잘못된 의견을 지적한 것처럼 잘못된 JSON이 생성되므로 조언을드립니다. 객체가 정적 JsonConvert 형 대신 JsonSerializer 유형을 사용 직렬화 할 때

[JsonObject(MemberSerialization.OptIn)] 
public class ModalOptions 
{ 
    [JsonProperty] 
    public object href { get; set; } 

    [JsonProperty] 
    public object type { get; set; } 
} 

다음과 같이 당신이 이것을 달성 할 수있는 Json.NET 라이브러리를 사용

. 예를 들어

:

var options = new ModalOptions { href = "file.html", type = "full" }; 
var serializer = new JsonSerializer(); 
var stringWriter = new StringWriter(); 
using (var writer = new JsonTextWriter(stringWriter)) 
{ 
    writer.QuoteName = false; 
    serializer.Serialize(writer, options);    
} 
var json = stringWriter.ToString(); 

이 생성됩니다

{href:"file.html",type:"full"} 

당신은 개체 이름이 더 이상 인용되지 않습니다 false로 JsonTextWriter 인스턴스의 QuoteName property을 설정합니다.

관련 문제