I have a JSON string that reads:
[{
"id": "id2",
"index": "2",
"str": "str2",
"cent": "200",
"triplet": "222"
},
{
"id": "id3",
"index": "3",
"str": "str3",
"cent": "300",
"triplet": "333"
},
{
"id": "id4",
"index": "4",
"str": "str4",
"cent": "400",
"triplet": "444"
},
{
"id": "id5",
"index": "5",
"str": "str5",
"cent": "500",
"triplet": "555"
}]
The key-value pairs come dynamically from the server and I won't know beforehand what data to expect.
For a charting library that I use, I need the values in JSON to be numeric rather than string viz. "index":2
instead of "index":"2"
I am required to do this manipulation client-side using pure JS or jQuery.
This was my approach but it doesn't seem to work:
var temp = //some json that I receive
var jsonForChart = jQuery.extend(true, {}, temp);
$.each(temp, function(key, value) {
$.each(value, function(k, v) {
if(!isNaN(v)){
jsonForChart[key][k] = Number(v);
}
});
});
In JSON, values must be one of the following data types: a string. a number. an object (JSON object)
How to convert a string to a number in JavaScript using the unary plus operator ( + ) The unary plus operator ( + ) will convert a string into a number. The operator will go before the operand. We can also use the unary plus operator ( + ) to convert a string into a floating point number.
toJSON() calls the object's toISOString() method, which returns a string representing the Date object's value. This method is generally intended to, by default, usefully serialize Date objects during JSON serialization, which can then be deserialized using the Date() constructor or Date. parse() as the reviver of JSON.
JSON only allows key names to be strings. Those strings can consist of numerical values.
Something like this (where objects
is an Array of objects):
JavaScript
for(var i = 0; i < objects.length; i++){
var obj = objects[i];
for(var prop in obj){
if(obj.hasOwnProperty(prop) && obj[prop] !== null && !isNaN(obj[prop])){
obj[prop] = +obj[prop];
}
}
}
console.log(JSON.stringify(objects, null, 2));
The last line will print out this:
[
{
"id": "id2",
"index": 2,
"str": "str2",
"cent": 200,
"triplet": 222
},
{
"id": "id3",
"index": 3,
"str": "str3",
"cent": 300,
"triplet": 333
},
{
"id": "id4",
"index": 4,
"str": "str4",
"cent": 400,
"triplet": 444
},
{
"id": "id5",
"index": 5,
"str": "str5",
"cent": 500,
"triplet": 555
}
]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With