简体   繁体   中英

Change JSON output for autocomplete

I need to chagen my JSON output which is:

[ { masterCardNo: 90363.01 }, { masterCardNo: 90363.02 }, { masterCardNo: 90363004 }, { masterCardNo: 90363004 }, { masterCardNo: 90363004 }, { masterCardNo: 90363004 }, { masterCardNo: 90363004 }, { masterCardNo: 90363004 }, { masterCardNo: 90363004 }, { masterCardNo: 2906.01 } ]

To Something like this:

[ "90363004", "90363001", "90363003"]

I have my output in a variable named "value"...

Thanks for any help..

Use .map() to convert the array of object to array of desired structure

var value = [{
    masterCardNo: 90363.01
}, {
    masterCardNo: 90363.02
}, {
    masterCardNo: 90363004
}, {
    masterCardNo: 90363004
}, {
    masterCardNo: 90363004
}, {
    masterCardNo: 90363004
}, {
    masterCardNo: 90363004
}, {
    masterCardNo: 90363004
}, {
    masterCardNo: 90363004
}, {
    masterCardNo: 2906.01
}]

value = $.map(value, function(obj){
    return obj.masterCardNo
});

console.log(value)

Demo: Fiddle

var json = '[numbers { masterCardNo: 90363.01 }, { masterCardNo: 90363.02 }, { masterCardNo: 90363004 }, { masterCardNo: 90363004 }, { masterCardNo: 90363004 }, { masterCardNo: 90363004 }, { masterCardNo: 90363004 }, { masterCardNo: 90363004 }, { masterCardNo: 90363004 }, { masterCardNo: 2906.01 } ]';

var json_parsed = $.parseJSON(json);
var no = "[";
for (var i = 0; i < json_parsed.numbers.length; i++){

 no += json_parsed.numbers[i].masterCardNo+",";
}
no+="]";

try this

u can also edit as u want for some changes

convert it into string & replace '{' into ""

use replace keyword for that

http://www.dotnetperls.com/replace

or

you can do it using same replace keyword in javascript

for better understand check this link: jsfiddle.net/Mrw8k/2

Fiddle

var data1 = "[{ masterCardNo: 90363.01 }, { masterCardNo: 90363.02 }, { masterCardNo: 90363004 }, { masterCardNo: 90363004 }, { masterCardNo: 90363004 }, { masterCardNo: 90363004 }, { masterCardNo: 90363004 }, { masterCardNo: 90363004 }, { masterCardNo: 90363004 }, { masterCardNo: 2906.01 }]";
    for (i = 0; i < data1.split(',').length; i++) {
        data1 = data1.replace(" masterCardNo:", "");
        data1 = data1.replace("{", '"');
        data1 = data1.replace("}", '"');
    }

    document.getElementById("demo").innerHTML = data1;

Try using @MatYa Answer

check this fiddle http://jsfiddle.net/Mh22s/

  data1 = data1.replace("{ masterCardNo:",'');
    data1 = data1.replace("}",'');

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM