2011-08-30 9 views
1

나는 asp.net과 자바 스크립트 객체가.NET에서 json 배열을 저장하는 방법은 무엇입니까?

[{"name":"A","value":"A"},{"name":"B","value":"B"},{"name":"C","value":"C"}] 

어떻게 (백엔드에) 전달하고 저장 (DB)에 수 같은 JSON 배열을 가지고?

편집 :

OK 내가

`$.post({url:"handler.ashx", data:array}) 
를 사용하여 같은 (일부 핸들러에 전달할 수있는 방법, 그것은 분명, 어떤 페이지에, 내가 가진 자바 스크립트 객체

var array = [{"name":"A","value":"A"},{"name":"B","value":"B"},{"name":"C","value":"C"}]; 

만들려면

??), 백엔드에서 어떻게 데이터베이스에 저장하거나 나중에이 배열을로드 할 수 있습니까 ??

또는 :

var arraystring = '[{"name":"A","value":"A"},{"name":"B","value":"B"},{"name":"C","value":"C"}]'; 

EDIT2 : u는 방법으로

var array = [{"name":"A","value":"A"},{"name":"B","value":"B"},{"name":"C","value":"C"}]; 

를 변환하는 방법을 가르쳐 경우

나는 그것을 감사하겠습니다 이제

전 용도 문자열 방정식 (배열을 순회하고 일부 '' '': '', ''{} '를 수동으로 추가하십시오) 내가 위에서 언급 한 것처럼 잠재적 인 문제가 있습니까 ??

+0

어떻게 저장 하시겠습니까? 별도의 레코드로 JSON 문자열로? 도움이 될 관련 목표 DB 스키마도 보여줄 수 있다면 –

+0

매우 광범위하고 추상적 인 질문을하고 있습니다. 1) 아약스를하는 방법, 2) JSON을 .NET 클래스/객체로 변환하는 방법; 3) 데이터베이스에 객체를 저장하는 방법. 당신은 "웹 애플리케이션을 어떻게 만듭니 까?"라고 물을 수도 있습니다. 좀 더 구체적으로 시도하십시오. 지금까지 뭐 했니? 어떤 기술을 사용하고 있습니까? 데이터베이스, jQuery 등 –

+0

ASP.NET Webform 또는 MVC? – balexandre

답변

1

당신은 당신은 단순히 DB에서와 같이 배열을 유지하고있는 그대로를 검색하고

  • 당신은 객체로 구문 분석 할 수 있습니다

    • .NET에 JSON을 다루는 몇 가지 옵션이 있습니다 2 경우에 예를 들어

    JSON.NET Library를 사용하면 간단한 사용 JSON.NET 방법 :

    Newtonsoft.Json.Converters.KeyValuePairConverter 
    

    또는 Custom Deserialize을 사용하고 JSON과의주고 받기가 정말 쉽습니다.


    의 당신이 뭔가를 게시하는 것을 가정 해 봅시다 :

    그래서 먼저 다음 모든 명명 규칙을 변경해야합니다 Request.Form["name"]하거나 Request["name"]를 사용하여 데이터를 요청할 때이 A,B,C로 변환됩니다
    $.post("myForm.aspx", 
         [{"name":"A","value":"A"},{"name":"B","value":"B"},{"name":"C","value":"C"}], 
         function() { 
          // all done. 
         }); 
    

    당신은 Request["nameA"], Request["nameB"], 등등을 간단하게 사용할 수 있습니다.

  • +1

    "JavascriptSerializer"와 "DataContractJSONSerializer"대부분의 용도로 잘 작동하는 적어도 두 개의 프레임 워크 JSON 시리얼 라이저가 있습니다. Newtonsoft에 대한 어떤 것도, 나는 그것과 위대한,하지만 그것도 많은 목적을 위해 불필요한 의존성을 사용했습니다. –

    +0

    처음부터 Newtonsoft를 사용했는데 그다지 좋은 것은 없었기 때문에 나는 그것에 의존하게되었습니다. :) – balexandre

    0

    데이터베이스에 저장하려는 다른 문자열과 마찬가지로 저장합니다. 자바 스크립트에서 나중에 다시 인스턴스화하려면 문자열에 eval() 함수를 사용하여 객체로 다시 변환하십시오.

    +0

    하지만 지금은 문자열이 아닙니다. 그렇죠? 어떻게 백엔드에 전달할 수 있습니까? $ .post를 사용하면 작동하지 않습니다. – rhapsodyn

    0

    이 작업을 수행하는 가장 좋은 방법은 json을 객체로 역 직렬화하여 db로 레코드로 저장하는 것입니다.

    확인 JSON.NET 라이브러리 http://json.codeplex.com/

    public class MyObj 
    { 
        public string name{get;set;} 
        public string value{get;set;} 
    } 
    
    void Main() 
    { 
        string json ="[{\"name\":\"A\",\"value\":\"A\"},{\"name\":\"B\",\"value\":\"B\"},{\"name\":\"C\",\"value\":\"C\"}]"; 
        IList<MyObj> arr = JsonConvert.DeserializeObject<IList<MyObj>>(json); 
    
        foreach(MyObj o in arr) 
        { 
         //add each object to db... 
         Console.WriteLine(o.name+":"+o.value); 
        } 
    } 
    
    0

    는 확인이 JSON.parse 및 JSON.stringify를 사용하는 것은-나쁜 해결책이 밝혀졌습니다.

    관련 문제