簡體   English   中英

使用C#進行Json成形

[英]Json forming using c#

嗨,我的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": "-"
        }
      ]
    }
  ]
}

我從http://json2csharp.com/獲得的類如下

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; }
}

現在的問題是我想通過Json作為c#API中的API輸出,我嘗試了list和var,但是到目前為止還不能返回上面提到的Json,請問有沒有人可以幫忙或者至少可以給我一個方向?

如果您想按照示例使用Web API返回,請使用以下方法

public RootObject GetRootObject()
{
   return new RootObject();
}

會做到這一點,假設在內容協商中向API發出的請求要求提供JSON-網絡api會自動神奇地將您的對象反序列化為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;
    }

您的Web服務C#會返回一個XML,而您的JSON為字符串輸入? 這是默認值

所以你有不同的選擇

去xml或將此行添加到您的方法中

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM