将对象转换为json数据

时间:2018-09-27 11:10:33

标签: c# .net json json.net

我有一个控制台应用程序,从中我要发送以下给定的json作为api的请求正文。谁能建议我怎么发送。

代码

entity en = new ConsoleApplication3.entity();
            en.Size = "L";
            en.name = "test";
            en.view.Alignment = "left";
            en.view.IND = true;
            en.view.Object = "front";

string jsondata = JsonConvert.SerializeObject(en, Formatting.Indented);

此处jsondata为

  {
 "view": {
 "Alignment": "left",
"InteriorIND": false,
"SteeringWheelPosition": "RHD",
"Object": "front"
},
 "Size": "L",
"Vin": "WVWZZZTST00000001"
}

我期望的是JSON。

{
    "size": {
        "value":"L"
    },
    "view": {
        "alignment": {
            "value":"left"
        },
        "IND":true,
        "object": {
            "value":"xx"
        },
        "name": {
            "value":"test"
        }
    }
}

输入我的密码

string jsondata =??????

var req = new HttpRequestMessage(HttpMethod.Post, url) { Content = new StringContent(jsondata) };
req.Headers.Add("Authorization", "token");
req.Headers.AcceptCharset.Add(StringWithQualityHeaderValue.Parse("UTF-8"));
req.Content.Headers.ContentType= new MediaTypeHeaderValue("application/json");
HttpResponseMessage response = await client.SendAsync(req);

// parse the response and return the data.
string jsonString = await response.Content.ReadAsStringAsync();
object responseData = JsonConvert.DeserializeObject(jsonString);
return (dynamic)responseData;

1 个答案:

答案 0 :(得分:1)

如果您需要使用此模型在问题中给出的JSON,

然后执行分配,然后对其进行序列化,您将获得所需的相同json。

public class Size
{
    public string value { get; set; }
}

public class Alignment
{
    public string value { get; set; }
}

public class Object
{
    public string value { get; set; }
}

public class Name
{
    public string value { get; set; }
}

public class View
{
    public Alignment alignment { get; set; }
    public bool IND { get; set; }
    public Object @object { get; set; }
    public Name name { get; set; }
}

public class RootObject
{
    public Size size { get; set; }
    public View view { get; set; }
}