2013-10-17 5 views
1

배열이 포함 된 JSON 문자열이 있는데이를 deserialize 할 수 없습니다. 제품과 코드 및 수량 목록에 액세스 할 수 있도록 분할하려고합니다. 충돌 할 때마다 시도합니다. json으로 문자열과 같이 반환됩니다배열이 포함 된 JSON 문자열의 비 직렬화

{"transaction_id":"88","store_id":"3","cashier_id":null,"loyalty_account":null,"transaction_time":"1382027452","total_amount":"99.45","items":{"1239219274":"1","3929384913":"1"},"payments":{"cc":"99.45"}} 
내가하고 싶은

가로 직렬화되는 :

"TRANSACTION_ID": "88" "STORE_ID": "3" "cashier_id"널 "loyalty_account"널 "transaction_time": "1382027452" "TOTAL_AMOUNT": "99.45"

"항목"{ "1239219274": "1", "3929384913": "1"}이 라인은 배열과 나는 모든 값을 세퍼레이터에 넣어야한다. 식사를 사전

"지불": { "CC": "99.45"}}

답변

3

편집 : 당신의 편집을 반영하기 위해 업데이트되었습니다.

JSON 배열이 아니며 기본적으로 사전 값인 인 JSON 객체입니다. 당신은 아마 당신을 위해 세부 사항의 처리됩니다 Json.NET를 배우는 몇 분 정도 지출해야

{ 
    "name":"Outer Object", 
    "items": [ 
     { 
      "name":"Item #1" 
     }, 
     { 
      "name":"Item #2" 
     }, 
     { 
      "name":"Item #3" 
     } 
    ] 
} 

:

JSON 배열은 대괄호 []으로 다음과 같이 직렬화됩니다.

public class Transaction 
{ 
    [JsonProperty("transaction_id")] 
    public int Id { get; set; } 

    [JsonProperty("store_id")] 
    public int StoreId { get; set; } 

    [JsonProperty("cashier_id")] 
    public int? CashierId { get; set; } 

    [JsonProperty("loyalty_account")] 
    public string LoyaltyAccount { get; set; } 

    [JsonProperty("transaction_time")] 
    public int TransactionTime { get; set; } 

    [JsonProperty("total_amount")] 
    public decimal TotalAmount { get; set; } 

    [JsonProperty("items")] 
    public Dictionary<string, string> Items { get; set; } 

    [JsonProperty("payments")] 
    public Dictionary<string, string> Payments { get; set; } 
} 

그런 다음 나는 단순히 쓸 수 있습니다 : 모든 당신 JSON 문자열의

Transaction transaction = JsonConvert.DeserializeObject<Transaction>(json); 
+0

. 나는 그것을 전혀 포맷하지 않았다. 그 점을 이해하고 있습니다. 제가 가지고있는 것을 무너 뜨릴 필요가 있습니다. –

1

먼저 당신은을 사용하여 확인할 수있는 오류가 여기에

내가 객체에 해당 문자열을 역 직렬화하는 방법입니다 온라인 검사기와 같은 : http://jsonlint.com/

Parse error on line 9: 
... "1239219274": "1""3929384913": "1" 
-----------------------^ 
Expecting '}', ':', ',', ']' 

그리고 다음 배열에 대해 그들이이 레이아웃이 : 당신이 사용할 수있는 자바 스크립트를 사용하는 경우

a : [1,2,3,4,5]

그리고 사용하여 C#을 당신이 JSON.Net 를 사용할 수 jQuery 또는 데이터베이스 요청에서 직접 오는 결과가 YUI

+0

편집을 확인하십시오. 실수로 잘못된 코드를 복사하고 붙여 넣었습니다. –

+0

무엇을 의미합니까? "" "1239219274": "1" "3929384913": "1"}이 줄은 배열이고 모든 값을 별도의 사전에 넣어야합니까? –

관련 문제