2

jsonの解析に問題があります。

jsonデータはここにあります:http: //beta.fmeserver.com/fmerest/engines/.json?token= 0ccfa0400b2d760fa3519baf18a557edb118356e

json2csharpを使用していくつかのクラスを作成しましたが、検索はnullです。

var url = "http://beta.fmeserver.com/fmerest/engines/.json?token=0ccfa0400b2d760fa3519baf18a557edb118356e";

WebClient client = new WebClient();
var json = client.DownloadString(url);
var search = JsonConvert.DeserializeObject<ServiceResponse>(json);

public class Engine
    {
        public int FMEBuildNumber { get; set; }
        public string FMEHostName { get; set; }
        public string FMEInstanceName { get; set; }
        public int currentJobID { get; set; }
        public int maxTransactionResultFailure { get; set; }
        public int maxTransactionResultSuccess { get; set; }
        public int resultFailureCount { get; set; }
        public int resultSuccessCount { get; set; }
        public int transactionPort { get; set; }
    }

    public class Engines
    {
        public List<Engine> engine { get; set; }
    }

    public class ServiceResponse
    {
        public string requestURI { get; set; }
        public string token { get; set; }
        public Engines engines { get; set; }
    }

    [JsonObject(MemberSerialization.OptIn)]
    public class RootObject
    {
        [JsonProperty("serviceResponse")]
        public ServiceResponse ServiceResponse { get; set; }
    }
4

1 に答える 1

0

Json.Netを使用して動的に行ってみませんか? ( http://json2csharp.com/によって生成されたクラスを使用せずに)

var url = "http://beta.fmeserver.com/fmerest/engines/.json?token=0ccfa0400b2d760fa3519baf18a557edb118356e";
using (WebClient wc = new WebClient())
{
    string json = wc.DownloadString(url);

    dynamic dynobj = JsonConvert.DeserializeObject(json);

    foreach (var engine in dynobj.serviceResponse.engines.engine)
    {
        Console.WriteLine("{0} {1}", engine.FMEInstanceName, engine.transactionPort);
    }
}
于 2012-11-03T17:29:44.387 に答える