2016-08-03 2 views

답변

5

Newtonsoft JSON.Net을 참조하는 가장 쉬운 방법은 #addin 지시문을 사용하는 것입니다. 예를 들어, 사용 :

당신이 네임 스페이스에 사용을 추가하거나 사용하려는 유형의 정규화 된 이름을 사용하는 것이 필요합니다 "기본"케이크 추가 기능이 아닙니다으로

#addin packageid

. 예를 들어, 빌드 스크립트의 상단에 사용 넣어 :

using Newtonsoft.Json;

또는 정규화 된 형식 이름 사용 : 그냥 "일반"C 번호의이 넘어

Newtonsoft.Json.JsonConvert.SerializeObject(...)

전체에게 예 :

#addin "nuget:https://www.nuget.org/api/v2?package=Newtonsoft.Json" 
using Newtonsoft.Json; 

public class MissingPerson 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
} 

var john = new MissingPerson { 
    FirstName = "John", 
    LastName = "Doe" 
}; 


// Serialize and output MissingPerson as json 
Information(
    "MissingPerson as json: {0}", 
    JsonConvert.SerializeObject(john, Formatting.Indented) 
    ); 

/* 
* This will output 
* MissingPerson as json: { 
* "FirstName": "John", 
* "LastName": "Doe" 
* } 
*/ 


var jsonMissingPerson = "{\"FirstName\": \"Jane\",\"LastName\": \"Doe\"}"; 

// Deserialize json string to object 
var jane = JsonConvert.DeserializeObject<MissingPerson>(jsonMissingPerson); 
Information(
    "Missing Person from json:\r\n\tFirstName: {0}\r\n\tLastName: {1}", 
    jane.FirstName, 
    jane.LastName 
    ); 

/* 
* This will output 
* Missing Person from json: 
*  FirstName: Jane 
*  LastName: Doe 
*/ 

위의 샘플은 #addin 지시어의 매우 강력한 부분 인 패키지를 가져올 NuGet 피드도 지정합니다. 즉, 출시 전 또는 비공개 피드에서 어셈블리를 가져올 수 있습니다.

+1

매력처럼 일한, 이것은 정확히 내가 무엇을 찾고 있었는지! 감사합니다. Mattias! –

3

대체 솔루션은 Cake.Json Addin을 사용할 수도 있습니다. 문서 번호 here. 이 같은 표준 기능에 대한 별칭 방법, 제공 :

  • 직렬화를
  • 역 직렬화
  • 그것은 단순히 추가하여 케이크 스크립트에 포함 할 수

:

#addin "Cake.Json"

관련 문제