Javascript 根据字段值对JSON进行排序,并将null替换为'-';

Javascript 根据字段值对JSON进行排序,并将null替换为'-';,javascript,json,Javascript,Json,我有一个json响应,我想根据数字字段对json进行排序(a-z)。我在json响应中有空值,我想用“-”替换所有出现的“null”。在原因和子原因中,我想显示“null”。需要用“-”替换它 const结果={ “答复”:{ “数据”:[ { “用户名”:“Sarathy Devaraju”, “customeraccounttype”:“现有客户”, “预计完工日期”:“2020年1月31日”, “创建日期”:“2020年1月15日”, “修改日期”:“2020年4月3日”, “sales

我有一个json响应,我想根据数字字段对json进行排序(a-z)。我在json响应中有空值,我想用“-”替换所有出现的“null”。在原因和子原因中,我想显示“null”。需要用“-”替换它

const结果={
“答复”:{
“数据”:[
{
“用户名”:“Sarathy Devaraju”,
“customeraccounttype”:“现有客户”,
“预计完工日期”:“2020年1月31日”,
“创建日期”:“2020年1月15日”,
“修改日期”:“2020年4月3日”,
“salesstagelastmodified”:“2020年4月3日”,
“原因”:空,
“sub_原因”:空
},
{
“用户名”:“Akhil Pal”,
“customeraccounttype”:“新客户”,
“预计完工日期”:“2019年11月29日”,
“创建日期”:“2019年8月1日”,
“修改日期”:“2020年4月4日”,
“salesstagelastmodified”:“2020年4月4日”,
“原因”:空,
“sub_原因”:空
},
{
“用户名”:“巴拉山姆甘”,
“customeraccounttype”:“新客户”,
“预计完工日期”:“2019年9月30日”,
“创建日期”:“2019年8月1日”,
“修改日期”:“2020年4月5日”,
“salesstagelastmodified”:“2020年4月5日”,
“原因”:空,
“sub_原因”:空
}
]
}
}
函数GetSortOrder(prop){
返回函数(a,b){
如果(a[prop]>b[prop]){
返回1;
}如果(a[prop]

对于字符串排序,您当前的方法看起来不错,但我建议您使用

更复杂的操作是替换任何
null
值。就我个人而言,我只是在UI中这样做,但要回答你的问题,类似这样的问题

const result={“response”:{“data”:[{“UserName”:“Sarathy Devaraju”,“customeraccounttype”:“现有客户”,“expectedclosuredate”:“2020年1月31日”,“datecreated”:“2020年1月15日”,“datemodified”:“2020年4月3日”,“salesstagelastmodified”:“2020年4月3日”,“reason”:null,“sub_reason”:null},{“UserName”:“Akhil Pal”,“customeraccounttype”:“新客户”,“expectedclosuredate:“2019年11月29日”,“datecreated:“2019年8月1日”,“datemodified:“2020年4月4日”,“salesstagelastmodified:“2020年4月4日”,“reason:“null”,“sub_reason:”null},{“UserName:”bala Shanmugam”,“customeraccounttype:”新客户”,“expectedclosuredate:“2019年9月30日”,“datecreated:“2019年8月1日”,“datemodified:”日期Modified:“2020年4月5日”,“salesstagelastmodified:”2020年4月5日,“原因”:空,“子原因”:空}]}
//从实际数据开始
常量数据=result.response.data
//将空值映射到“-”
const mapped=data.map(r=>Object.fromEntries(Object.entries(r.map)([key,val])=>
[键,val??“]))
//分类
map.sort((a,b)=>a.UserName.localeCompare(b.UserName))

console.info(mapped)
对于排序字符串,您当前的方法看起来不错,但我建议您使用

更复杂的操作是替换任何
null

const result={“response”:{“data”:[{“UserName”:“Sarathy Devaraju”,“customeraccounttype”:“现有客户”,“expectedclosuredate”:“2020年1月31日”,“datecreated”:“2020年1月15日”,“datemodified”:“2020年4月3日”,“salesstagelastmodified”:“2020年4月3日”,“reason”:null,“sub_reason”:null},{“UserName”:“Akhil Pal”,“customeraccounttype”:“新客户”expectedclosuredate:“2019年11月29日”,“datecreated:“2019年8月1日”,“datemodified:“2020年4月4日”,“salesstagelastmodified:“2020年4月4日”,“reason:“null”,“sub_reason:”null},{“UserName:”bala Shanmugam”,“customeraccounttype:”新客户”,“expectedclosuredate:“2019年9月30日”,“datecreated:”2019年8月1日”,“datemodified:“2020年4月5日”,“salesstagelastmodified:”2020年4月5日,“原因”:空,“子原因”:空}]}
//从实际数据开始
常量数据=result.response.data
//将空值映射到“-”
const mapped=data.map(r=>Object.fromEntries(Object.entries(r.map)([key,val])=>
[键,val??“]))
//分类
map.sort((a,b)=>a.UserName.localeCompare(b.UserName))

console.info(已映射)
您只需使用
replace
函数将
null
替换为
“-”

您需要使用
JSON.parse
JSON.Stringify
并查找空值并替换为您想要的任何内容

运行下面的代码段

const结果={
“答复”:{
“数据”:[{
“用户名”:“Sarathy Devaraju”,
“customeraccounttype”:“现有客户”,
“预计完工日期”:“2020年1月31日”,
“创建日期”:“2020年1月15日”,
“修改日期”:“2020年4月3日”,
“salesstagelastmodified”:“2020年4月3日”,
“原因”:空,
“sub_原因”:空
},
{
“用户名”:“Akhil Pal”,
“customeraccounttype”:“新客户”,
“预计完工日期”:“2019年11月29日”,
“创建日期”:“2019年8月1日”,
“修改日期”:“2020年4月4日”,
“salesstagelastmodified”:“2020年4月4日”,
“原因”:空,
“sub_原因”:空
},
{
“用户名”:“巴拉山姆甘”,
“customeraccounttype”:“新客户”,
“预计完工日期”:“2019年9月30日”,
“创建日期”:“2019年8月1日”,
“修改日期”:“2020年4月5日”,
“salesstagelastmodified”:“2020年4月5日”,
“原因”:空,
“sub_原因”:空
}
]
}
}
const replaceNull=JSON.parse(JSON.stringify(result.replace)(/null/g,“-”))

console.log(replaceNull)
您可以简单地使用
replace
函数将
null
替换为
“-”

您需要使用
JSON.parse
JSON.Stringify
并查找null和r