Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.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
C# 使用c语言生成Json#_C#_Json_Asp.net Web Api - Fatal编程技术网

C# 使用c语言生成Json#

C# 使用c语言生成Json#,c#,json,asp.net-web-api,C#,Json,Asp.net Web Api,嗨,我的json结构是这样的 { "OutputParam": [ { "param1": "John", "param2": "Doe", "param3": "BT", "param4": [ { "subparam1": "00002", "subparam2": "True", "subparam3": "-", "subparam4

嗨,我的json结构是这样的

{
  "OutputParam": [
    {
      "param1": "John",
      "param2": "Doe",
      "param3": "BT",
      "param4": [
        {
          "subparam1": "00002",
          "subparam2": "True",
          "subparam3": "-",
          "subparam4": "-",
          "subparam5": "data goes here"
        },
        {
          "subparam1": "00003",
          "subparam2": "True",
          "subparam3": "-",
          "subparam4": "-",
          "subparam5": "data goes here"
        },
        {
          "subparam1": "00004",
          "subparam2": "False",
          "subparam3": "111",
          "subparam4": "message",
          "subparam5": "-"
        }
      ]
    }
  ]
}
我从中学到的课程如下

public class Param4
{
    public string subparam1 { get; set; }
    public string subparam2 { get; set; }
    public string subparam3 { get; set; }
    public string subparam4 { get; set; }
    public string subparam5 { get; set; }
}

public class OutputParam
{
    public string param1 { get; set; }
    public string param2 { get; set; }
    public string param3 { get; set; }
    public List<Param4> param4 { get; set; }
}

public class RootObject
{
    public List<OutputParam> OutputParam { get; set; }
}
公共类参数4
{
公共字符串子参数1{get;set;}
公共字符串子参数2{get;set;}
公共字符串子参数3{get;set;}
公共字符串子参数4{get;set;}
公共字符串子参数5{get;set;}
}
公共类输出参数
{
公共字符串param1{get;set;}
公共字符串param2{get;set;}
公共字符串param3{get;set;}
公共列表参数4{get;set;}
}
公共类根对象
{
公共列表OutputParam{get;set;}
}

现在的问题是我想把上面的Json作为API输出传递到c#API中,我尝试了list和var,但到目前为止还不能返回上面提到的Json,有人能帮忙或至少给出一个方向吗?

如果你想按照你的示例使用Web API返回一个方法,例如

public RootObject GetRootObject()
{
   return new RootObject();
}
假设对API的请求在中请求JSON,web API会神奇地将您的对象反序列化为JSON自动

您的web服务c#首先返回一个xml,其中JSON为字符串?这是默认设置

所以你有不同的选择

选择xml或将这一行添加到methode

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]

下面是一些可以帮助您的代码示例

public RootObject1 Get(int id)
    {
        RootObject1 rt = new RootObject1();
        OutputParam pr = new OutputParam();
        Param4 cr = new Param4();
        rt.OutputParam = new List<OutputParam>();
        pr.Param4= new List<Param4>();
        pr.Param1= "AB";
        rt.OutputParam = new List<OutputParam>();
        cr.Param6 = "aceee";
        pr.Param4.Add(cr);

        rt.OutputParam.Add(pr);
        return rt;
    }
public-RootObject1-Get(int-id)
{
RootObject1 rt=新的RootObject1();
OutputParam pr=新的OutputParam();
Param4 cr=新的Param4();
rt.OutputParam=新列表();
pr.Param4=新列表();
pr.Param1=“AB”;
rt.OutputParam=新列表();
cr.Param6=“aceee”;
pr.4.添加(cr);
rt.OutputParam.Add(pr);
返回rt;
}

json文件应称为“OutputParam”。是的,它应称为OutputParam。这有点不清楚-您在获取正确的json时遇到了问题,还是仅仅将类转换为json?如果是后者,则需要将类序列化为JSON。一种方法是使用。如果是前者,可能会发布您获得的JSON,因此,我们可以看到它有什么问题。在Json api中有很多序列化器和反序列化器,您应该使用。一个小的代码示例将非常有帮助。请您详细解释一下,比如我如何使用这个类在Json上面形成,只是为了澄清目的:您有一个已填充的RootObject类,以及您在应用程序中要做什么webmethod是否将该类作为JSON返回?如果是这样,上面的代码就是您所需要的全部。您在API中试用过这种方法吗?当你叫它时会发生什么?