发送JSON格式的发布请求

时间:2018-08-06 09:32:37

标签: c# json serialization json.net

以下是JSON中预期的发布请求格式。谁能告诉我如何实现这一目标。

{
  "MywebServiceInputDetail":{
     "MyDatalst":{
       "MyData":[
          {
           "name":"TestName",
           "id":"2611201",
           "SomeRefVal":"REF123456"
           }
          ]
        }
      }
}

到目前为止,我正在使用JavaScriptSerializer。 下面是代码。

[Serializable]
public struct MyStruct
{
     public string name;
     public string id;
     public string refno;
}


JavaScriptSerializer jss = new JavaScriptSerializer();
string serializedJson = jss.Serialize(ObjMystrcut);

上面的代码将JSON字符串显示为

{"name":"TestName","id":"1234567","refno":"567123"}

我是JSON的新手,所以我无法制定请求格式。 我避免通过对json字符串进行硬编码来实现它。基本上,我试图理解{[包围的含义。

[意味着我需要创建一个对象数组吗?

2 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

string serializedJson = jss.Serialize(new { MywebServiceInputDetail = new { MyDatalst = new { MyData = new[] { ObjMystrcut } } } });

{}是对象表示法,因此它表示具有属性的对象。 []是数组符号。

答案 1 :(得分:0)

是的,int rowCount = driver.FindElements(By.XPath("//div[@class='bodyCells[2]']//div").Count()); Console.WriteLine(rowCount); [符号代表JSON数组(对象的集合)。在您的示例中,]是您创建的那些结构的集合。

您需要创建以下类:

MyData

现在创建一个MywebServiceInputDetail对象并对其进行序列化。

我个人会忘记使用结构,而只创建以下类:

public class MywebServiceInputDetail
{
    public MyDatalst MyDatalst { get; set; }
}

public class MyDatalst
{
    public List<MyStruct> MyData { get; set; }
}

public struct MyStruct
{
    public string name;
    public string id;
    public string SomeRefVal;
}

您还应该在属性中添加JSON属性,以确保Name和Id用小写字母序列化。