asp.net 2.0에서 나열할 JSON 문자열 또는 기타 사용 가능한 형식

StackOverflow https://stackoverflow.com/questions/102866

  •  01-07-2019
  •  | 
  •  

문제

내가 하나가 JSON 그게 오고 있어 string 체재.에 보관해야 해요 key-pair 가치관이나 그런 것.나는 사용하고있다 asp.net 2.0 그리고 제3자를 사용할 수 없습니다 DLL 좋다 Newtonsoft.Json.dll.마지막 옵션은 다음을 사용하는 것 같아요 regular expression.

누구든지 이것 좀 도와주실 수 있나요?

도움이 되었습니까?

해결책

당신이 가면 http://www.json.org/ 페이지 하단을 보면 대부분 오픈 소스인 수십 개의 json 라이브러리가 있습니다. C#의 경우 8개가 나열되어 있는 것 같습니다.이러한 라이브러리 중 하나를 참조할 수 없는 경우 허용 라이센스가 있는 라이브러리를 찾아 프로젝트에 코드를 추가하는 것이 가장 좋습니다.

또 다른 아이디어는 다이어그램, 문법 및 구문을 살펴보는 것입니다. http://www.json.org/ 자신만의 파서를 작성하면 됩니다. 하지만 정규식은 아니다 그것을하는 방법.파서를 작성하는 방법을 모른다면 오픈 소스 json 라이브러리 중 하나를 보거나 좋은 CSV 파서처럼 덜 복잡한 것으로 시작할 수 있습니다. 다음은 꽤 괜찮아 보이는 문서입니다. http://www.boyet.com/Articles/CsvParser.html

다른 팁

C#에서 JScript를 사용하여 JSON을 키/값 쌍으로 직렬화할 수 있습니다.프로젝트에 몇 가지 참조를 추가해야 합니다.이는 .NET 프레임워크의 일부이므로 프로젝트에 참조를 추가하기만 하면 됩니다.너는 필요할거야:

  • Microsoft.JSript
  • 마이크로소프트.Vsa

먼저, 수업 상단에서 사용하는 방법은 다음과 같습니다.

using Microsoft.JScript;
using Microsoft.JScript.Vsa;

그런 다음 스크립트를 실행할 엔진을 'Page' 코드 숨김:

VsaEngine Engine = VsaEngine.CreateEngine();

그런 다음 이 메서드를 만들고 JSON 개체를 전달하여 호출하면 됩니다.

object EvalJScript(string JScript)
{
    object result = null;
    try
    {
        result = Microsoft.JScript.Eval.JScriptEvaluate(JScript, Engine);
    }
    catch (Exception ex)
    {
        return ex.Message;
    }

    return result;
}

유형 object 반환된(JSON이 전달된 경우)은 'JSObject'.키/값 쌍으로 해당 값에 액세스할 수 있습니다.읽기 MSDN 문서 이 개체에 대한 자세한 내용은

다음은 코드를 사용하는 예입니다.

string json = "({Name:\"Dan\",Occupation:\"Developer\"})";

JSObject o = EvalJScript(json) as JSObject;

string name = o["Name"] as string; // Value of 'name' will be 'Dan'

JScript.NET을 사용할 수 있나요?

그렇다면 eval()을 사용하면 충분히 쉬울 것입니다. 그런 다음 반환된 객체를 반복하고 KeyValuePair 등으로 변환하면 됩니다.

언어 뒤의 코드로 jscript.net을 사용해야 하지만 원하는 경우 사이트의 다른 페이지는 C#으로 유지해도 괜찮습니다.

이전 의견에서 언급했듯이 보안 측면과 위험을 인지해야 합니다. 구문 분석하는 JSON을 신뢰하는 경우에만 eval을 사용하세요!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top