2013-01-31 4 views
0

안녕하세요.이 멋진 도구를 사용해 주셔서 감사합니다.RestSharp 및 List 언 마샬링

'계정'에 대한 '폴더'를 반환하는 JSON 응답이 있습니다. 나는 http://json2csharp.com/을 사용하여 결과를 직렬화하는 클래스를 생성했습니다. 클래스는이 JSON 아래에 있습니다.

간단히 말해서 배열 구성원 (폴더)의 멤버 변수가 초기화되지 않지만 올바른 폴더가 반환되고 배열이 만들어지는 것이 문제입니다.

 
{ 
    "name": "SEResponse", 
    "declaredType": "com.sesac.api.view.FolderList", 
    "scope": "javax.xml.bind.JAXBElement$GlobalScope", 
    "value": { 
     "link": [], 
     "TotalRecords": 9, 
     "Folders": [ 
      { 
       "Folder": { 
        "folderId": 1, 
        "accountId": 1, 
        "name": "root", 
        "isRoot": true, 
        "parentId": 0, 
        "parentName": null, 
        "creationDate": null, 
        "lastModifiedDate": null, 
        "fbFolderId": null, 
        "fbParentId": null 
       } 
      }, 
      { 
       "Folder": { 
        "folderId": 9, 
        "accountId": 1, 
        "name": "m4", 
        "isRoot": false, 
        "parentId": 1, 
        "parentName": null, 
        "creationDate": null, 
        "lastModifiedDate": null, 
        "fbFolderId": null, 
        "fbParentId": null 
       } 
      }, 
      { 
       "Folder": { 
        "folderId": 2, 
        "accountId": 1, 
        "name": "c1", 
        "isRoot": false, 
        "parentId": 1, 
        "parentName": null, 
        "creationDate": null, 
        "lastModifiedDate": null, 
        "fbFolderId": null, 
        "fbParentId": null 
       } 
      }, 
      { 
       "Folder": { 
        "folderId": 3, 
        "accountId": 1, 
        "name": "c2", 
        "isRoot": false, 
        "parentId": 1, 
        "parentName": null, 
        "creationDate": null, 
        "lastModifiedDate": null, 
        "fbFolderId": null, 
        "fbParentId": null 
       } 
      }, 
      { 
       "Folder": { 
        "folderId": 4, 
        "accountId": 1, 
        "name": "cc2", 
        "isRoot": false, 
        "parentId": 3, 
        "parentName": null, 
        "creationDate": null, 
        "lastModifiedDate": null, 
        "fbFolderId": null, 
        "fbParentId": null 
       } 
      }, 
      { 
       "Folder": { 
        "folderId": 5, 
        "accountId": 1, 
        "name": "dd2", 
        "isRoot": false, 
        "parentId": 3, 
        "parentName": null, 
        "creationDate": null, 
        "lastModifiedDate": null, 
        "fbFolderId": null, 
        "fbParentId": null 
       } 
      }, 
      { 
       "Folder": { 
        "folderId": 10, 
        "accountId": 1, 
        "name": "z4", 
        "isRoot": false, 
        "parentId": 1, 
        "parentName": null, 
        "creationDate": null, 
        "lastModifiedDate": null, 
        "fbFolderId": null, 
        "fbParentId": null 
       } 
      }, 
      { 
       "Folder": { 
        "folderId": 6, 
        "accountId": 1, 
        "name": "z2", 
        "isRoot": false, 
        "parentId": 1, 
        "parentName": null, 
        "creationDate": null, 
        "lastModifiedDate": null, 
        "fbFolderId": null, 
        "fbParentId": null 
       } 
      }, 
      { 
       "Folder": { 
        "folderId": 7, 
        "accountId": 1, 
        "name": "j4", 
        "isRoot": false, 
        "parentId": 1, 
        "parentName": null, 
        "creationDate": null, 
        "lastModifiedDate": null, 
        "fbFolderId": null, 
        "fbParentId": null 
       } 
      } 
     ] 
    }, 
    "nil": false, 
    "globalScope": true, 
    "typeSubstituted": false 
} 

여기 내 클래스입니다 :

public class Folder 
{ 
    public int folderId { get; set; } 
    public int accountId { get; set; } 
    public string name { get; set; } 
    public bool isRoot { get; set; } 
    public int parentId { get; set; } 
    public object parentName { get; set; } 
    public object creationDate { get; set; } 
    public object lastModifiedDate { get; set; } 
    public object fbFolderId { get; set; } 
    public object fbParentId { get; set; } 
} 


public class FolderList 
{ 
    public List<object> link { get; set; } 
    public int TotalRecords { get; set; } 
    public List<Folder> Folders { get; set; } 
} 


public class RootFolderObject 
{ 
    public string name { get; set; } 
    public string declaredType { get; set; } 
    public string scope { get; set; } 
    public FolderList value { get; set; } 
    public bool nil { get; set; } 
    public bool globalScope { get; set; } 
    public bool typeSubstituted { get; set; } 
} 

답변

0

모든 초기화되지 않은 개체는 개체 형식입니다. 적절한 직렬화를 위해 좀 더 적절하고 특정한 객체 유형을 사용해야 할 것처럼 보입니다. 예 : 타임 스탬프 등의 DateTime을 사용하십시오.

+0

내가 해낸 위대한 아이디어. 불행히도 아직 문제를 해결하지 못했습니다 ..... – user486480

0

예, "개체"유형이 문제가됩니다 (폴더와 링크 모두에 해당).

JSON에서 "폴더"가 왜 생겼는지 궁금합니다. 내가 기대 :

"Folders": [ 
      { 
        "folderId": 1, 
        "accountId": 1, 
        "name": "root", 
        ... 
      }, 
      ... 
] 

은 아마 "폴더"라는 멤버를 찾습니다 당신의 JSON RestSharp 사용.

관련 문제