ASP.NET 에서 다 중 포 함 된 json 데 이 터 를 추출 하 는 방법 을 자세히 설명 합 니 다.

본 고 는 ASP.NET 이 제3자 라 이브 러 리 Newtonsoft.JSon 을 이용 하여 다 중 포 함 된 json 데 이 터 를 추출 하 는 방법 을 실례 로 설명 하 였 으 며,구체 적 인 예 는 다음 과 같다.
추출 할 json 문자열 을 다음 과 같이 가정 합 니 다.

{"name":"lily","age":23,"addr":{"city":guangzhou,"province":guangdong}}
먼저 네 임 스페이스 참조:

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
위 에 있 는 제 이 슨 문자열 을 하나의 대상 으로 볼 수 있 습 니 다.해당 하 는 클래스 만 작성 하면 됩 니 다.(VS 2013 을 사용 하여 개발 하면'편집-선택 적 붙 여 넣 기-JSON 붙 여 넣 기 클래스'를 통 해 제 이 슨 문자열 을 실체 클래스 로 빠르게 변환 할 수 있 습 니 다)

 public class UserInfo
 {
  public string name;
  public int age;
  public address addr;
 }
 public class address
 {
  public string city;
  public string province;
 }
1.json 문자열 을 실체 대상 으로 변환 하 는 코드 는 다음 과 같 습 니 다.

string jsonData="{\"name\":\"lily\",\"age\":23,\"addr\":{\"city\":guangzhou,\"province\":guangdong}}";
UserInfo user=(UserInfo)JsonConvert.DeserializeObject(jsonData, typeof(UserInfo));
2.json 의 특정한 속성의 값 을 읽 으 려 면 코드 를 사용 할 수 있 습 니 다.

JObject jsonObj = JObject.Parse(jsonData);
string name=jsonObj ["name"].ToString();
string age=jsonObj ["age"].ToString();
string city=((JObject )jsonObj ["addr"])["city"].ToString();
string province=((JObject )jsonObj ["addr"])["province"].ToString();
3.다 중 끼 워 넣 기 json 을 설명 하고 임의의 속성의 값 을 가 져 옵 니 다:
처리 해 야 할 json 문자열 은 다음 과 같 습 니 다:

{"name":"lily","age":23,"addr":{"city":guangzhou,"province":guangdong}};
그리고'city'와 같은 대상 을 입력 하 라 고 하면 시스템 은'guangzhou'를 출력 하고'age'를 입력 하면'23'을 출력 합 니 다.json 은 다단 계 로 구성 되 어 있 기 때문에 하나씩 옮 겨 다 녀 야 합 니 다.코드 는 다음 과 같 습 니 다.

  public string GetJsonValue(JEnumerable<JToken> jToken, string key)
  {
   IEnumerator enumerator = jToken.GetEnumerator();
   while (enumerator.MoveNext())
   {
    JToken jc = (JToken)enumerator.Current;
    if (jc is JObject || ((JProperty)jc).Value is JObject)
    {
     return GetJsonValue(jc.Children(), key);
    }
    else
    {
     if (((JProperty)jc).Name == key)
     {
      return ((JProperty)jc).Value.ToString();
     }
    }
   }
   return null;
  }
GetJSonValue 코드 호출:

string jsonData = "{\"name\":\"lily\",\"age\":23,\"addr\":{\"city\":\"guangzhou\",\"province\":\"guangdong\"}}";
JObject jsonObj = JObject.Parse(jsonData);
Response.Write(GetJsonValue(jsonObj.Children(), "province"));
여러 겹 으로 포 함 된 배열 이 라면 다음 코드 를 사용 할 수 있 습 니 다.

string jsonData = "{\"addr\":[{\"city\":\"guangzhou\",\"province\":\"guangdong\"},{\"city\":\"guiyang\",\"province\":\"guizhou\"}]}";
JObject jsonObj = JObject.Parse(jsonData);
JArray jar = JArray.Parse(jsonObj["addr"].ToString());
JObject j = JObject.Parse(jar[0].ToString());
Response.Write(j["city"]);
4.JSON 이 XML 로 전환:

string xmlstr=((XmlDocument)JsonConvert.DeserializeXmlNode(jsonData)).InnerXml.ToString();
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기