C# 使用c语言生成Json#
嗨,我的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
{
"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中试用过这种方法吗?当你叫它时会发生什么?