다음과 같은 sctructure JSON 데이터가 있습니다.Json에서 값 검색
JSON 데이터 :
{
"items" : [ {
"downloadUrl" : "XXXX",
"path" : "XXXX",
"id" : "XXXX",
"repository" : "XXXX",
"format" : "XXXX",
}, {
"downloadUrl" : "XXXX",
"path" : "XXXX",
"id" : "XXXX",
"repository" : "XXXX",
"format" : "XXXX",
}, {
"downloadUrl" : "XXXX",
"path" : "XXXX",,
"id" : "XXXX",
"repository" : "XXXX",
"format" : "XXXX",
} ],
"continuationToken" : "YYYY"
}
나는 목록 (List<repository>
)의 항목 값을 얻을 필요가있다. 값을 검색하려면 어떻게해야합니까?
downloadUrl, 경로, ID, 저장소, 형식, continuoationToken
내가 이렇게 아래에 들어 가려고했다.
class Program
{
public class repository
{
public NpmPackages items { get; set; }
}
public class NpmPackages
{
[JsonProperty(PropertyName = "downloadUrl")]
public string DownloadUrl { get; set; }
[JsonProperty(PropertyName = "path")]
public string Path { get; set; }
[JsonProperty(PropertyName = "id")]
public string Id { get; set; }
[JsonProperty(PropertyName = "repository")]
public string Repository { get; set; }
[JsonProperty(PropertyName = "format")]
public string Format { get; set; }
}
public static string HttpOperation(string apiUrl)
{
if (string.IsNullOrEmpty(apiUrl) == true)
{
throw new ArgumentNullException(nameof(apiUrl));
}
Uri url = new Uri(apiUrl);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
using (Stream responseStream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
return reader.ReadToEnd();
}
}
static void Main(string[] args)
{
List<repository> packageDetails = new List<repository>();
List<repository> packageData = new List<repository>();
var jsonData = HttpOperation("XXXX");
packageData = JsonConvert.DeserializeObject<List<repository>>(jsonData);
packageDetails.AddRange(packageData);
}
}
다음과 같은 오류가 발생하는 동안 오류가 발생합니다.
오류 정보 :
이현재 JSON 객체를 직렬화 할 수 없습니다 (예 : { "이름": "값"}) 타입으로 'System.Collections.Generic.List`1 [npm_clean_up_Tool.Program + NpmPackages]'때문에 이 유형은 올바르게 역 직렬화하기 위해 JSON 배열 (예 : [1,2,3])이 필요합니다. 이 오류를 수정하려면 JSON 배열을 JSON 배열 (예 : [1,2,3])로 변경하거나 deserialized 형식을 일반 .NET 유형 (예 : 정수와 같은 기본 유형이 아니라 콜렉션 유형 JSON 객체에서 역 직렬화 할 수있는 배열 또는 목록). JsonObjectAttribute를 유형에 추가하여 강제로 JSON 객체에서 역 직렬화 할 수도 있습니다. 경로 '항목', 2 줄, 위치 11입니다.
내 목표를 달성하기 위해 제안 사항을 업데이트하십시오.
신고서에 오류가 있습니다. 유효한 클래스를 얻으려면 복제본의 단계를 따르십시오. –