간단한 웹 프로토 타이핑 연습의 일부로 사용할 JSON 파일을 만들고 싶습니다. LinqPAD는 필자가 필요로하는 형태로 내 DB에서 데이터에 액세스하는 데 적합하지만 JSON으로 쉽게 가져올 수는 없습니다.LinqPAD에서 JSON으로 데이터를 내보내는 방법은 무엇입니까?
반환되는 모든 것을 처리하기 위해 자바 스크립트를 적용 할 수 있기 때문에 실제로 스키마가 무엇인지는 신경 쓰지 않습니다.
이것이 가능합니까?
간단한 웹 프로토 타이핑 연습의 일부로 사용할 JSON 파일을 만들고 싶습니다. LinqPAD는 필자가 필요로하는 형태로 내 DB에서 데이터에 액세스하는 데 적합하지만 JSON으로 쉽게 가져올 수는 없습니다.LinqPAD에서 JSON으로 데이터를 내보내는 방법은 무엇입니까?
반환되는 모든 것을 처리하기 위해 자바 스크립트를 적용 할 수 있기 때문에 실제로 스키마가 무엇인지는 신경 쓰지 않습니다.
이것이 가능합니까?
더 유창 솔루션은 Linqpad에 "내 확장"파일에 다음과 같은 방법을 추가하는 것입니다
이public static String DumpJson<T>(this T obj)
{
return
obj
.ToJson()
.Dump();
}
public static String ToJson<T>(this T obj)
{
return
new System.Web.Script.Serialization.JavaScriptSerializer()
.Serialize(obj);
}
그럼 당신은 당신이 원하는 쿼리에서 다음과 같이 사용할 수 있습니다 :
Enumerable.Range(1, 10)
.Select(i =>
new
{
Index = i,
IndexTimesTen = i * 10,
})
.DumpJson();
"ToJson"을 별도로 추가하여 "Expessions"과 함께 사용할 수 있습니다.
이 기능은 직접 지원되지 않으며 기능 요청 here을 열었습니다. 이것을 유용하다고 생각한다면 투표하십시오. 에서는 System.Web.Extensions.dll
동일한 대화 상자에서 네임 스페이스 추가 System.Web.Script.Serialization
new JavaScriptSerializer().Serialize(query).Dump();
감사합니다. 구현하는 가장 쉬운 해결책이었습니다. – seangwright
직접적인 해결책. – MarwaAhmad
버전 4.47부터 LINQPad는 JSON을 내 보냅니다. 새로운 lprun.exe
유틸리티와 함께 사용자의 요구를 충족시킬 수 있습니다.
이 Json.NET이 서식을 들여 않기 때문에과 솔루션, 그리고 JSON가 제대로 날짜를 렌더링합니다. .Dump()
로)에을
public static object DumpJson(this object value, string description = null)
{
return GetJson(value).Dump(description);
}
private static object GetJson(object value)
{
object dump = value;
var strValue = value as string;
if (strValue != null)
{
var obj = JsonConvert.DeserializeObject(strValue);
dump = JsonConvert.SerializeObject(obj, Newtonsoft.Json.Formatting.Indented);
}
else
{
dump = JsonConvert.SerializeObject(value, Newtonsoft.Json.Formatting.Indented);
}
return dump;
}
사용 .DumpJson (: NuGet에서 Json.NET을 추가하고 를 참조 Newtonsoft.Json.dll을 당신의 "내 확장"쿼리뿐만 아니라 다음 코드 결과를 렌더링합니다. 필요한 경우 .DumpJson()
을 다른 서명으로 덮어 쓸 수 있습니다.
일단 설정되면 더 멋지 네요. 매우 감사합니다! 저자가 LinqPAD에 기본적으로 이것을 포함하기를 바랍니다. 다른 사람들에게 주시면, 내 대답에 설명 된대로 _My Extensions_ 문서에'System.Web.Extensions.dll'을 추가해야합니다. –
데이터 형식에 관계가있는 경우 실패합니다. 'LINQPad.User.YourType'형식의 개체를 serialize하는 동안 순환 참조가 검색되었습니다. –