문제

일부 json을 컬렉션 (목록)으로 탈취하려고하지만 어떤 메소드가 객체 목록을 반환 할 것인지 잘 모르겠습니다. 아니면 무언가를 통해 루프하고 내 목록에 복사해야합니까?

누구든지 내가 이것에 사용해야 할 구문이나 방법을 말해 줄 수 있습니까?

속성으로 객체를 만들었으므로 데이터를 유지하는 데 사용할 준비가되었습니다. (제목, URL, 설명)

나는 이것을 시도했지만 옳지 않은 것 같다

 List<newsItem> test = (List<newsItem>)JsonConvert.DeserializeObject(Fulltext);
도움이 되었습니까?

해결책

도움을 살펴 보셨나요?

http://james.newtonking.com/json/help/?topic=html/serializingcollections.htm

string json = @"[
  {
    ""Name"": ""Product 1"",
    ""ExpiryDate"": ""\/Date(978048000000)\/"",
    ""Price"": 99.95,
    ""Sizes"": null
  },
  {
    ""Name"": ""Product 2"",
    ""ExpiryDate"": ""\/Date(1248998400000)\/"",
    ""Price"": 12.50,
    ""Sizes"": null
  }
]";

List<Product> products = JsonConvert.DeserializeObject<List<Product>>(json);

Console.WriteLine(products.Count);
// 2

Product p1 = products[0];

Console.WriteLine(p1.Name);
// Product 1

다른 팁

그 확장 방법을 사용하고 있습니다.

    public static string ToJSONArray<T>(this IEnumerable<T> list)
    {
        DataContractJsonSerializer s = new DataContractJsonSerializer(typeof(IEnumerable<T>));
        MemoryStream ms = new MemoryStream();
        s.WriteObject(ms, list);
        return GetEncoder().GetString(ms.ToArray());
    }

    public static IEnumerable<T> FromJSONArray<T>(this string jsonArray)
    {
        if (string.IsNullOrEmpty(jsonArray)) return new List<T>();

        DataContractJsonSerializer s = new DataContractJsonSerializer(typeof(IEnumerable<T>));
        MemoryStream ms = new MemoryStream(GetEncoder().GetBytes(jsonArray));
        var result = (IEnumerable<T>)s.ReadObject(ms);
        if (result == null)
        {
            return new List<T>();
        }
        else
        {
            return result;
        }
    }

이와 같이 물체를 장식해야합니다.

[DataContract]
public class MyJSONObject
{
    [DataMember]
    public int IntValue { get; set; }
    [DataMember]
    public string StringValue { get; set; }
}

일반 목록 대신 배열을 사용해보십시오. 이것은 도움이 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top