API로 작업하는 데 문제가 있습니다. 처음 API로 작업했습니다. GET을 사용하여 필요한 데이터를 읽을 수 있었고 해당 부분이 완벽하게 작동하고 있습니다. 이제 되 돌리는 JSON 데이터를 역 직렬화해야하며 Newtonsoft의 JSON .NET 라이브러리를 사용하고 있습니다. 폭발적으로 데이터를 역 직렬화하고 디버거가 도움이되지 않을 때 문제가 발생한 것 같습니다. 나는 온라인에서 몇 가지 제안을 시도했지만 가지 않았으므로 누군가가 나를 깨달을 수 있다면 감사 할 것입니다. 다음은 코드입니다.
string url = "";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream receiveStream = response.GetResponseStream();
StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
string responseData = readStream.ReadToEnd();
var results = JsonConvert.DeserializeObject<dynamic>(responseData);
var id = results["id"].Value;
// var name = results.Name;
실행할 때 디버거는 코드의 마지막 줄에서 다음 예외를 throw합니다.
{ "잘못된 키 값으로 액세스 된 JArray 값 : \"id \ ". 배열 위치 인덱스가 필요합니다."}
나는 내가 돌려받는 데이터에 ID가 존재한다고 확신합니다.
Smarty Streets에서 돌아 오는 Json 데이터 :
[
{
"id": 0,
"candidate_index": 0,
"delivery_line_1": "1600 Amphitheatre Pkwy",
"last_line": "Mountain View CA 94043-1351",
"delivery_point_barcode": "940431351000",
"components": {
"primary_number": "1600",
"street_name": "Amphitheatre",
"street_suffix": "Pkwy",
"city_name": "Mountain View",
"state_abbreviation": "CA",
"zipcode": "94043",
"plus4_code": "1351",
"delivery_point": "00",
"delivery_point_check_digit": "0"
},
]
귀하의 응답은 단일 객체가 아닌 배열입니다. 그래서 당신은 사용해야합니다
JArray results = JArray.Parse(responseData)
결과를 구문 분석합니다 (예 :) results[0]["id"]
. 동적 인 길을 가면
dynamic results = JArray.Parse(responseData)
이제 다음과 같이 사용할 수 있습니다. results[0].id
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다