目录

C后端与前端json数据格式转换

C#后端与前端json数据格式转换


后端处理前端发送的json对象


假如前端发起post请求给的一个json对象是这样

{
    "ID":"01",
    "NAME":"xiaoming"
}

那么后端则需要需要采用单参数post接收参数[FromBody],参数类型则设置为JObject类型,需要引入using Newtonsoft.Json.Linq;

using Newtonsoft.Json.Linq;

public void getjson([FromBody])
{
    string ID = json["ID"].ToString();
    string NAME = json["NAME"].ToString();
}

这样就可以把传递过来的json对象中的各个字段提取出来放入变量中暂存


后端封装string至json对象传递给前端使用,以及json对象放到数组中


首先得将字符串修改成像json对象那样的形式

{“xx”:“xx”,“yy”:“yy”,“zz”:“zz”}

然后使用函数对字符串进行转化,并使用dynamic类型定义一个动态类型的变量来接收转化好的json对象

dynamic json = Newtonsoft.Json.JsonConvert.DeserializeObject(string);

这样一个json对象就封装好了,可以直接返回给前端使用,这里的返回值类型也应该写成dynamic

如果要将多个转化好的json变成前端能够遍历的json数组,这里可以使用C#中的集合,List和ArrayList均可

public ArrayList GetJsonList()
{
    //创建类似于json对象的字符串
    string str = "{" + "\"" + "name" + "\"" + ":" + "\"" + "xiaoming" + "\"" + "}";
    //字符串转json对象
    dynamic json = Newtonsoft.Json.JsonConvert.DeserializeObject(str);
    
    //实例化ArrayList集合,并将json对象添加到集合之中
    ArrayList jsonlist = new ArrayList();
    jsonlist.Add(json);
    
    //返回包装着json对象的集合
    return jsonlist;
}