2017-05-03 2 views
-1

을 Object로, 느릅 나무 오브젝트 나는 내가이 객체를 시도하지만 변환변환 문자열 내 질문은 간단합니다 C#

jsonstring = "{"message":"success","ID": "[83689707,83689708]"}" 
var obj = JsonConvert.DeserializeObject<jsonResponseMail>(jsonstring); 

를 사용할 때 JSON 문자열을 변환하는 데 사용할 필요가 실패 :(

public class jsonResponseMail 
    { 
     public string message { get; set; } 
     public List<int> ID { get; set; } 
    } 

    public class jsonResponseMail 
    { 
     public string message { get; set; } 
     public List<string> ID { get; set; } 
    } 

    public class jsonResponseMail 
    { 
     public string message { get; set; } 
     public int[] ID { get; set; } 
    } 

    public class jsonResponseMail 
    { 
     public string message { get; set; } 
     public string[] ID { get; set; } 
    } 
+0

"id"는 배열이 아니며 문자열입니다. – Webbanditten

+0

사용 : http://json2csharp.com/ – Smartis

답변

2

을 감안할 때 당신이 다음 문자열이

될 것이라고 목록을 기대하는 경우 문자열이

public class jsonResponseMail 
{ 
    public string message { get; set; } 
    public string ID { get; set; } 
} 

해야한다 6,

{"message":"success","ID": [83689707,83689708]} 

및 클래스 나 클래스 이름 지정 규칙을 준수 않습니다

public class jsonResponseMail 
{ 
    public string message { get; set; } 
    public List<int> ID { get; set; } 
} 
또한

jsonResponseMail 될 것이다. 대신 JsonResponseMail을 사용하십시오.

+0

예, ID가 "복잡한"문자열 "[83689707,83689708]"입니다. 두 값 "83689707"과 83689708을 얻고 싶습니다. 문자열 ID가없는 문자열. – Makito

+0

그럴 경우'string'을'List '으로 변환하는 자신 만의 논리를 만들어야합니다. –

0

JSON 문자열을 수동으로 수정해야합니다. 다음과 같은 것 :

var original = JsonConvert.DeserializeObject<JsonResponseMailOriginal>(json); 
var ids = original.Id.Replace("[", "").Replace("]", "").Split(',').Select(Int32.Parse).ToList(); 
var result = new JsonResponseMail() 
{ 
    message = original.message, 
    Ids = ids 
};