일일이 꺼내서 intType의 인스턴스에 넣어 줘도 되나 Vincent님의 말 처럼 역직렬화를 하는게 가장 간단하고 쓰기 쉽습니다.
JSON 문자열의 형태와 동일한 클래스를 만드세요.
public class ResultInfo
{
public string[] DataValue { get; set; }
public int SuccessValue { get; set; }
}
위의 클래스명은 nywoo님이 원하시는 것으로 하시면 되나, 속성명은 위의 데이터와 맞추는게 좋습니다. (attribute로 이를 변경할 수 있으나 되도록 이면 맞추시는게 코딩 가독성은 좋은 것 같습니다.)
이제 API에서 최종 JSON 문자열을 얻으신 후, 다음의 코드로 위 클래스의 인스턴스를 얻으실 수 있습니다.
using Newtonsoft.Json;
var jsonData = @"
{
""datavalue"": [""value1"", ""value2""], ""successvalue"": 3
}
";
Console.WriteLine(jsonData);
var result = JsonConvert.DeserializeObject<ResultInfo>(jsonData)!;
Console.WriteLine(result.SuccessValue);
var value = new intType { num = result.SuccessValue };
class ResultInfo
{
public string[] DataValue { get; set; } = default!;
public int SuccessValue { get; set; } = default!;
}
class intType
{
public int num { get; set; }
public string message { get; set; }
}
디모이님 친절한 설명 정말 감사합니다 말씀대로 수정진행 먼저 해보겠습니다.
클래스명은 대문자로 변경하겠습니다.
하나만 더 여쭤봐도 될까요?
만약에 넘어오는 josn stirng이 ctionResult Index(int? id)에서 넘겨져오는 id값에 따라 형식이 달라질 때에는 양이 5가지 이하일 때에는 클래스를 만들고, 이후에는 바뀌는 형식에 바로 넣는 방법을 찾는게 더 좋을까요?