2010-02-02 6 views
1

복잡한 자바 스크립트 개체를 serialize하고 ASP.NET 페이지에 게시하는 코드를 만들었습니다. 나는으로 Request.Form을 사용하여 JSON 문자열을 얻을 수있는 결과는 (I 가독성을 위해 들여 쓰기를 추가 한) 다음과 같습니다 ASP.NET을 사용하여 복잡한 JSON 객체를 비 직렬화 하시겠습니까?

{ 
    "gasterPerStolPerVecka": { 
     "name": "gasterPerStolPerVecka", 
     "keyValue_id": "2", 
     "set_id": "1", 
     "containerElement": "#gasterPerStolPerVecka", 
     "keyValueComponents": [ 
      { 
       "name": "gasterPerStolPerVecka_guestsPerWeek", 
       "value": "200" 
      }, 
      { 
       "name": "gasterPerStolPerVecka_numberOfChairs", 
       "value": "100" 
      } 
     ], 
     "keyValueUnitText": "gäster/stol per vecka", 
     "keyValueCalculationMethod": "divide", 
     "isValid": true, 
     "result": 2 
    }, 
    "tillgangligaStolstimmarPerVecka": { 
     "name": "tillgangligaStolstimmarPerVecka", 
     "keyValue_id": "1", 
     "set_id": "1", 
     "containerElement": "#tillgangligaStolstimmarPerVecka", 
     "keyValueComponents": [ 
      { 
       "name": "tillgangligaStolstimmarPerVecka_openHoursPerWeek", 
       "value": "35" 
      }, 
      { 
       "name": "tillgangligaStolstimmarPerVecka_numberOfChairs", 
       "value": "100" 
      } 
     ], 
     "keyValueUnitText": "stolstimmar/vecka", 
     "keyValueCalculationMethod": "multiply", 
     "isValid": true, 
     "result": 3500 
    }, 
    "planeradIntaktPerTillgangligStolOchVecka": { 
     "name": "planeradIntaktPerTillgangligStolOchVecka", 
     "keyValue_id": "", 
     "set_id": "", 
     "containerElement": "#planeradIntaktPerTillgangligStolOchVecka", 
     "keyValueComponents": [ 
      { 
       "name": "planeradIntaktPerTillgangligStolOchVecka_weeklyRevenue", 
       "value": "" 
      }, 
      { 
       "name": "planeradIntaktPerTillgangligStolOchVecka_numberOfChairs", 
       "value": "100" 
      } 
     ], 
     "keyValueUnitText": "kr", 
     "keyValueCalculationMethod": "divide", 
     "isValid": false, 
     "result": null, 
     "errorText": "Ofullständigt underlag för beräkning." 
    }, 
    "planeradIntaktPerTillgangligaStolstimmar": { 
     "name": "planeradIntaktPerTillgangligaStolstimmar", 
     "keyValue_id": "", 
     "set_id": "", 
     "containerElement": "#planeradIntaktPerTillgangligaStolstimmar", 
     "keyValueComponents": [ 
      { 
       "name": "planeradIntaktPerTillgangligaStolstimmar_weeklyRevenue", 
       "value": "" 
      }, 
      { 
       "name": "planeradIntaktPerTillgangligaStolstimmar_openHoursPerWeek", 
       "value": "35" 
      }, 
      { 
       "name": "planeradIntaktPerTillgangligaStolstimmar_numberOfChairs", 
       "value": "100" 
      } 
     ], 
     "keyValueUnitText": "kr", 
     "keyValueCalculationMethod": "divide_divide", 
     "isValid": false, 
     "result": null, 
     "errorText": "Ofullständigt underlag för beräkning." 
    } 
} 

이 지금은 서버 측에서이 역 직렬화 할, 그러나 그것은 어렵다.

[NullReferenceException이 : 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.] 내가 어디에서 오류를 찾기 시작 해야할지 모르겠

나는 오류가 계속?

미리 감사드립니다. /토마스 칸

+1

역 직렬화 코드를 표시 할 수 있습니까? – Matt

답변

0

ASP.NET 용 직렬화 라이브러리를 사용해야합니다. 사용 가능한 라이브러리 또는 ASP.NET에 내장 된 라이브러리에 대해서는 http://json.org/을 참조하십시오. 당신이 구문 분석하는 일 패키지 및 방법 다음 양식 필드를 얻는 방법은 빈칸을 작성해야합니다 분명히

String s = getAppropriateFormField(); 
Object o = JSONLibraryPackage.parse(s); 

: 어느 쪽이 코드는 다음과 같다됩니다.

1

serialify 대신 stringify를 사용하십시오.

관련 문제