Ajax 호출에서 데이터를 가져옵니다. json 출력이 아래에 언급되어 있습니다. 내 코드 숨김 작업 시트 매개 변수에는 deserialization에서 해당 매개 변수를 전달하고 값을 얻는 방법에 json Array 개체 가 있습니다.
이것은 내 Json 출력입니다.
string Jobsheet =[{"var_name_data":"Demo1Demo2Demo3Demo4Demo5Demo6Demo7Demo8Demo9Demo10 1,2,3,4,5,6,7,8,9,10"}]
내 수업:
public class RootObject
{
public List<User> var_name_data { get; set; }
}
public class User
{
public string first_name { get; set; }
public int customer_id { get; set; }
}
내 코드 숨김에서 :
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static object Details4(string selectedJobSheet)
{
try
{
var des = (RootObject)Newtonsoft.Json.JsonConvert.DeserializeObject(selectedJobSheet, typeof(RootObject));
return des.var_name_data.Count.ToString();
}
catch (Exception)
{
throw;
}
}
예외 발생 :
EBCheckList.dll에서 'Newtonsoft.Json.JsonSerializationException'유형의 예외가 발생했지만 사용자 코드에서 처리되지 않았습니다. 추가 정보 : 현재 JSON 배열 (예 : [1,2,3])을 'EBCheckDAL.RootObject'유형으로 역 직렬화 할 수 없습니다. 유형이 올바르게 역 직렬화하려면 JSON 개체 (예 : { "name": "value"})가 필요합니다. 이 오류를 수정하려면 JSON을 JSON 개체 (예 : { "name": "value"})로 변경하거나 deserialized 형식을 배열 또는 List와 같은 컬렉션 인터페이스 (예 : ICollection, IList)를 구현하는 형식으로 변경합니다. JSON 배열에서 역 직렬화됩니다. JsonArrayAttribute를 유형에 추가하여 JSON 배열에서 강제로 역 직렬화 할 수도 있습니다. 경로 '', 줄 1, 위치 1이 발생했습니다.
위의 json 데이터를 목록 (또는) 요소 배열로 변환하도록 도와주세요.
다음 코드와 같이 Jobsheet
to 목록이 아닌 개체 목록을 역 직렬화 할 수 있습니다 RootObject
.
1-json 개체와 일치하는 개체를 만듭니다.
public class User
{
public string Var_name_data { get; set; }
}
2-다음을 직렬화 해제합니다 Jobsheet
.
string Jobsheet = @"[{""var_name_data"":""Demo1Demo2Demo3Demo4Demo5Demo6Demo7Demo8Demo9Demo10 1,2,3,4,5,6,7,8,9,10""}]";
List<User> users = JsonConvert.DeserializeObject<List<User>>(Jobsheet);
데모 :
foreach(User user in users)
{
Console.WriteLine(user.Var_name_data);
}
// or
Console.WriteLine(users.count);
결과 :
Demo1Demo2Demo3Demo4Demo5Demo6Demo7Demo8Demo9Demo10 1,2,3,4,5,6,7,8,9,10
//or
1
도움이 되었기를 바랍니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다