json.Dumps - C#等价吗?

时间:2015-03-16 10:27:32

标签: c# python json

我有以下API - 文档似乎是用Python编写的:

request = {
"username": "johndoe47",
"password": "secret12345"
}
apiConnection.request("POST", "/api/session?sid=" + sid, json.dumps(request))
response = json.loads(apiConnection.getresponse().read())

我需要通过C#

访问此REST服务

我有点不确定,“json.dumps”的作用。我尝试了以下方法:

data="{\"Username\":\"johndoe47\",\"password\":\"secret12345\"}";

    HttpWebRequest request=HttpWebRequest.Create("http://example.com/api/session?sid=workingsid");
            request.Method = "POST";
        request.ContentType = "text/plain;charset=utf-8";

        System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
        byte[] bytes = encoding.GetBytes(data);

        request.ContentLength = bytes.Length;

        using (Stream requestStream = request.GetRequestStream())
        {
            requestStream.Write(bytes, 0, bytes.Length);
        }

        request.BeginGetResponse((x) =>
        {
            using (HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(x))
            {
                StreamReader reader = new StreamReader(response.GetResponseStream());
                retval = reader.ReadToEnd();
            }
        }, null);

我希望json.dumps()所做的与我用“data =”做的不一样,因为服务器响应是“缺少用户名”

1 个答案:

答案 0 :(得分:0)

在python中,json.dump(s)(..)将给定的Python数据结构序列化为JSON。 API提供两个不同的调用,第一个是平面json.dump(..)。这个将序列化过程的输出写入像object这样的文件。另一个是json.dumps(..)将序列化数据结构作为字符串返回。因此,在上面的示例中,请求的内容是表示JSON序列化Python字典的字符串。