在C#中使用多行发布JSON?

时间:2015-02-14 01:05:29

标签: c# json post httpwebrequest

我遇到了麻烦,我怎么能用C#中的 Content-Type:application / json 来编写这样的帖子数据(下面的代码)?

{
  "snippet": {
    "data": "t1",
    "data2": "t2",
    "data3": "t3",
    "data4": "t4"
  },
  "data": {
    "st": "bxx"
  }
}

该死的家伙,我无法理解我如何使用我的代码使用JSON序列化:(帮助请小女孩:D我是一个新朋友。请把我{  “snippet”:{   “data”:“t1”,   “data2”:“t2”,   “data3”:“t3”,   “data4”:“t4”  },  “数据”:{   “st”:“bxx”  } }

在我的代码中使用JSON序列化:

var resultHttpPost = ZK.HttpPost(“https://urlcom”,“这里需要是带json的代码”,“application / json”,“”,“iso-8859-1”,ZK.InterfacesLibrary.Z .Http.ResponceType.HeaderAndBody);

我只是无法理解我如何合并它并在json代码中放置右转义:(

{ "snippet\": { "data\": "t1", "data2\": "t2", "data3\": "t3", "data4\": "t4" }, "data\": { "st\": "bxx" } } 不起作用:(

2 个答案:

答案 0 :(得分:0)

你真的有三个不同的问题:

Q1)我如何发布(JSON)数据?

答:你可以谷歌“C#JSON”,找到这样的链接:JSON Serialization

Q2)如何发布多行JSON数据?

答:格式无关紧要。就HTTP消息而言 - 它是一行还是多行无关紧要。 “格式化”是一个演示问题 - JSON解析器将使用或不使用格式化读取完全相同的消息。

如果您希望以“fomatted”形式呈现,那么:

a)您必须发送为“Content-Type:application / json”。您应该使用“text / plain”或“html / text”代替

......和......

b)您应该使用HTML <pre>标记来保留格式。

Q3)如何设置“内容类型”?

这完全取决于您用来创建和发送HTTP数据的库。

这是一种可能性:

How do you set the Content-Type header for an HttpClient request?

HttpClient c = new HttpClient();
c.BaseAddress = new Uri("http://example.com/");
c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
...

答案 1 :(得分:0)

JSON应该是单引号,你需要使用“+”运算符进行连接。 你的JSON应该是这样的。

"{"+
  "'snippet': {"+
    "'data': 't1',"+
    "'data2': 't2',"+
    "'data3': 't3',"+
    "'data4': 't4'"+
  "},"+
  "'data': {"+
    "'st': bxx'"+
  "}"+
"}";