Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将JSON数组从IRESTRESPONSE转换为C#数组_C#_Arrays_Json - Fatal编程技术网

如何将JSON数组从IRESTRESPONSE转换为C#数组

如何将JSON数组从IRESTRESPONSE转换为C#数组,c#,arrays,json,C#,Arrays,Json,我想知道一种将这个json转换为数组的方法,以便在cwinform中处理。 这些都是我的尝试,但达到了目的,在这一点上,我想获得数据,但我不能,因为我没有关于json的经验 最后一个代码sentense给了我一个错误: 没有为“WindowsFormsApplication2.Person[]”类型定义无参数构造函数 这是响应内容: JSON 阶级 客户 var client = new RestClient("https://ussouthcentral.services.azureml.ne

我想知道一种将这个
json
转换为数组的方法,以便在
c
winform
中处理。 这些都是我的尝试,但达到了目的,在这一点上,我想获得数据,但我不能,因为我没有关于
json
的经验

最后一个代码sentense给了我一个错误:

没有为“WindowsFormsApplication2.Person[]”类型定义无参数构造函数

这是响应内容:

JSON

阶级

客户

var client = new RestClient("https://ussouthcentral.services.azureml.net/workspaces/3d904b8d125f457fa269fc848989e8da/services/3873cde13fdf459c807a71f975dc4c3e/execute?api-version=2.0&format=swagger");
var request = new RestRequest(Method.POST);
request.AddHeader("postman-token", "1ffba0bb-194c-7aa4-0348-7a1a46855693");
request.AddHeader("cache-control", "no-cache");
request.AddHeader("authorization", "Bearer 312mkibrneyPAdV9SiWbCJTs09VwCE9v2JBXds8SYmSSPp6OdwtKTb78Bk9n6RPZ91r/SVRs1idJDkDBBawIoA==");
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\r\n        \"Inputs\": {\r\n                \"input1\":\r\n                [\r\n                    {\r\n                            'Class': \"10\",   \r\n                            'age': \"30\",   \r\n                            'menopause': \"60\",   \r\n                            'tumor-size': \"20\",   \r\n                            'inv-nodes': \"10\",   \r\n                            'node-caps': \"15\",   \r\n                            'deg-malig': \"10\",   \r\n                            'breast': \"10\",   \r\n                            'breast-quad': \"20\",   \r\n                            'irradiat': \"10\",   \r\n                    }\r\n                ],\r\n        },\r\n    \"GlobalParameters\":  {\r\n    }\r\n}\r\n", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content.ToString());

JavaScriptSerializer js = new JavaScriptSerializer();
var yourOjbect = new JavaScriptSerializer().DeserializeObject(response.Content);
Person[] persons = js.Deserialize<Person[]>(response.Content);
var client=new RestClient(“https://ussouthcentral.services.azureml.net/workspaces/3d904b8d125f457fa269fc848989e8da/services/3873cde13fdf459c807a71f975dc4c3e/execute?api-版本=2.0&格式=swagger“;
var请求=新的重新请求(Method.POST);
请求。AddHeader(“邮递员令牌”,“1FBA0BB-194c-7aa4-0348-7a1a46855693”);
AddHeader(“缓存控制”、“无缓存”);
请求.AddHeader(“授权”,“承载312MKIBRNEYPAV9SIWBCJTS09VWCE9V2JBXDS8SYMSPP6ODWTKTB78BK9N6RPZ91R/SVRS1IDJDKBBAWIOA=”;
AddHeader(“内容类型”、“应用程序/json”);
request.AddParameter(“application/json”,“{\r\n\”Inputs\”:{\r\n\“input1\”:\r\n[\r\n{\r\n'Class':\“10\”,\r\n'年龄':“30\”,\r\n'更年期':“60\”,\r\n'肿瘤大小':““20\”、\r\n“inv nodes”:“10\”、\r\n“node caps”:“15\”、\r\n“deg malig”:“10\”、\r\n“breast”:“10\”、\r\n“breast quad”:“20\”、\r\n“辐照”:“10”\“,\r\n}\r\n],\r\n}\r\n\“全局参数\:{\r\n}\r\n}\r\n”,ParameterType.RequestBody);
IRestResponse response=client.Execute(请求);
Console.WriteLine(response.Content.ToString());
JavaScriptSerializer js=新的JavaScriptSerializer();
var yourOjbect=newJavaScriptSerializer().DeserializeObject(response.Content);
Person[]persons=js.反序列化(response.Content);

对于特定的JSON字符串,您可以使用解决方案中提供的
模型
类,并且反序列化过程正在进行:

这里有一个工作演示:


您是否尝试使用Newtonsoft.Json库来反序列化您的响应?您的Json是一个具有
Results
属性的对象,该属性返回一个具有
output1
属性的对象,该属性随后包含数组。因此,您的对象结构需要反映这一点。您可以尝试以下操作:
var yourOjbect=js.DeserializeObject(response.Content);
并为
Person
类定义一个空构造函数。@RahulSharma Person类已经有一个(隐式)空构造函数。将其显式化是没有帮助的。使用
Newtonsoft
库,使用
动态属性为JSON字符串创建一个工作小提琴示例:
public class Person
{
    public string Class { get; set; }
    public string age { get; set; }

    public string menopause { get; set; }
    public string tumor_size { get; set; }

    public string inv_nodes { get; set; }
    public string node_caps { get; set; }

    public string deg_malig { get; set; }
    public string breast { get; set; }

    public string breast_quad { get; set; }
    public string irradiat { get; set; }

    public string output { get; set; }
    public string possiblity { get; set; }
}
var client = new RestClient("https://ussouthcentral.services.azureml.net/workspaces/3d904b8d125f457fa269fc848989e8da/services/3873cde13fdf459c807a71f975dc4c3e/execute?api-version=2.0&format=swagger");
var request = new RestRequest(Method.POST);
request.AddHeader("postman-token", "1ffba0bb-194c-7aa4-0348-7a1a46855693");
request.AddHeader("cache-control", "no-cache");
request.AddHeader("authorization", "Bearer 312mkibrneyPAdV9SiWbCJTs09VwCE9v2JBXds8SYmSSPp6OdwtKTb78Bk9n6RPZ91r/SVRs1idJDkDBBawIoA==");
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\r\n        \"Inputs\": {\r\n                \"input1\":\r\n                [\r\n                    {\r\n                            'Class': \"10\",   \r\n                            'age': \"30\",   \r\n                            'menopause': \"60\",   \r\n                            'tumor-size': \"20\",   \r\n                            'inv-nodes': \"10\",   \r\n                            'node-caps': \"15\",   \r\n                            'deg-malig': \"10\",   \r\n                            'breast': \"10\",   \r\n                            'breast-quad': \"20\",   \r\n                            'irradiat': \"10\",   \r\n                    }\r\n                ],\r\n        },\r\n    \"GlobalParameters\":  {\r\n    }\r\n}\r\n", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content.ToString());

JavaScriptSerializer js = new JavaScriptSerializer();
var yourOjbect = new JavaScriptSerializer().DeserializeObject(response.Content);
Person[] persons = js.Deserialize<Person[]>(response.Content);
using System;
using Newtonsoft.Json;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        string json=@"{'Results':{'output1':[{'Class':'10','age':'9.06725552044283','menopause':'18.5605772106407','tumor-size':'5.62041822714077','inv-nodes':'2.50477840015836','node-caps':'5.29640554298695','deg-malig':'1.77286724180295','breast':'2.67776376618299','breast-quad':'5.61570098311485','irradiat':'4.84969010222608','Scored Labels':'1','Scored Probabilities':'0.999995118824755'}]}}";
        var Sresponse = JsonConvert.DeserializeObject<RootObject>(json);

        foreach(var result in Sresponse.Results.output1)
        {    
            Console.WriteLine(result.Class);
            Console.WriteLine(result.age);
            Console.WriteLine(result.deg_malig);
            Console.WriteLine(result.Scored_Labels);

        }       
    }
}

public class Results
{
    public List<Output1> output1 { get; set; }
}

public class RootObject
{
    public Results Results { get; set; }
}


public class Output1
{
    public string Class { get; set; }
    public string age { get; set; }
    public string menopause { get; set; }

    [JsonProperty("tumor-size")]
    public string tumor_size { get; set; }

    [JsonProperty("inv-nodes")]
    public string inv_nodes { get; set; }

    [JsonProperty("node-caps")]
    public string node_caps { get; set; }

    [JsonProperty("deg-malig")]
    public string deg_malig { get; set; }

    public string breast { get; set; }

    [JsonProperty("breast-quad")]
    public string breast_quad { get; set; }

    public string irradiat { get; set; }

    [JsonProperty("Scored Labels")]
    public string Scored_Labels { get; set; }

    [JsonProperty("Scored Probabilities")]
    public string Scored_Probabilities { get; set; }
}
10
9.06725552044283
1.77286724180295
1