Ответ 1
Ваша функция должна быть такой:
function (key, value) {
return (value == null) ? "" : value
}
Проверяет значения null
и undefined
и возвращает пустую строку
Привет, у меня есть объект JSON, предоставленный с помощью запроса ajax.
Некоторые значения внутри json отображаются как null
, но я хочу вместо empty String
Мой пример кода:
$.post("/profil_process/wall/preview-post.php",param, function (data){
// this does not work
JSON.stringify(data, function(key, value) { return value === "" ? "" : value });
$('#previewWall').html(getPostWall(data.type,data.titre,data.url,data.description,data.media,data.photo_auteur,data.nom_auteur,data.url_auteur,data.date_publication)).fadeIn();
$(".bouton-vertM").show();
$("#wLoader").hide();
},'json');
Любые идеи?
Ваша функция должна быть такой:
function (key, value) {
return (value == null) ? "" : value
}
Проверяет значения null
и undefined
и возвращает пустую строку
Вот как вы должны это делать, заменяя значения объектов пустыми строками, не строгая его
$.post("/profil_process/wall/preview-post.php",param, function (data){
(function removeNull(o) {
for(var key in o) {
if( null === o[key] ) o[key] = '';
if ( typeof o[key] === 'object' ) removeNull(o[key]);
}
})(data);
$('#previewWall').html(
getPostWall(
data.type,
data.titre,data.url,
data.description,
data.media,
data.photo_auteur,
data.nom_auteur,
data.url_auteur,
data.date_publication
) // ^^^ why not just pass the entire object ?
).fadeIn();
$(".bouton-vertM").show();
$("#wLoader").hide();
},'json');
Если вы можете заменить null-ы на пустые строки в сериализованной строке, сделайте что-то вроде этого:
data = JSON.parse(JSON.stringify(data).replace(/\:null/gi, "\:\"\""));
Для тех, кто все еще ищет решение.
Использовал это в моем приложении angular 2, чтобы удалить все нулевые значения, возвращенные моим запросом БД.
Создать угловую 2 функцию в компоненте
replacer(i, val) {
if ( val === null )
{
return ""; // change null to empty string
} else {
return val; // return unchanged
}
}
Или функция Javascript
function replacer(i, val) {
if ( val === null )
{
return ""; // change null to empty string
} else {
return val; // return unchanged
}
}
Затем используйте функцию в методе JSON.stringify
JSON.stringify(result, this.replacer)
Надеемся на эту помощь
var List = [];
$.post("/profil_process/wall/preview-post.php",param, function (data){
jQuery.each(data, function (key, value) {
List.push({
ReportId : value.ReportId,
ReportType: CheckNullReturnBlank(value.ReportType),
ReportName: CheckNullReturnBlank(value.ReportName),
Description : CheckNullReturnBlank(value.Description)
})
}); },'json');
function CheckNullReturnBlank(item) {
return item = (item == null) ? '' : item;
}
Вы можете заменить нулевые значения пустым на нижний код в java- script
var remove_empty = function ( target ) {
Object.keys( target ).map( function ( key ) {
if ( target[ key ] instanceof Object ) {
if ( ! Object.keys( target[ key ] ).length && typeof target[ key ].getMonth !== 'function') {
target[ key ] = "";
}
else {
remove_empty( target[ key ] );
}
}
else if ( target[ key ] === null ) {
target[ key ] = "";
}
} );
return target;
};
вы можете больше узнать о Object.keys
function returnblank(item){
if(item == null){
return "";
}else{
return item;
}
}