【问题标题】:convert object to json data将对象转换为 json 数据
【发布时间】:2018-09-27 11:10:32
【问题描述】:

我有一个控制台应用程序,我想从中发送以下给定的 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;

【问题讨论】:

  • 你会通过什么逻辑将字符串列表转换成那种形式?
  • 什么是List<string, string>
  • 我假设List<string,string> 表示Dictionary<string,string>List<(string,string)>。如果不知道如何对值进行分组,仍然不可能产生所需的输出
  • 如果您对 JSON 格式有任何控制权,我想您应该简化它并删除所有 value 参数,而只使用 "size": "L" 之类的东西。

标签: c# .net json json.net


【解决方案1】:

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

然后执行Assignments然后序列化它你会得到你想要的相同的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; }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 2010-12-13
    • 2021-11-18
    • 2017-05-04
    • 2017-06-16
    • 2012-07-21
    相关资源
    最近更新 更多