0

I have a servlet where I send JSON response (back to javascript) . For example , my response looks like

{
    "responseStr":"1,5,119.8406677,7,7,116.5664291,10,10,116.6099319,20,10,117.2185898,25,3,115.2636185"
}

Now what is happening at the moment is that I am collecting data( numbers above) in servlet and sending it in JSON response as a String with comma separated values. When this response reaches front end, all these numbers have to go in a javascript array (where I do my further logic). Currently I am doing this by

var res = JSON.parse(REQ.responseText);         
var myArr = res.responseStr.split(',');

My thinking is that the second line( where I use split()) is causing a bottleneck in my application . A few data points as in above example are not a trouble but it becomes a problem when i have thousands of data points.

So my question is that is there a way that when I am creating my response in servlet that I can create the response as javascript array so that I do not have to use split() at all? Any better ways of achieving the above task of converting the response into javascript array?

3 Answers 3

1

If you send responseStr as an Array, when the JSON parses it, it will be an array. So you could send your JSON response as "[1,2,3,4,5,6,7]" and so one, and when you JSON.parse, it will return an array.

To make it a little more clear :

var arr = [1,2,3,4,5];
arr = JSON.stringify(arr); // "[1,2,3,4,5]" -- String
arr = JSON.parse(arr); // [1,2,3,4,5] -- Array
0

In your response set content-type JSON/application and send JSON array

{
    "responseStr":["1","5","119.8406677","7","7","116.5664291","10","10","116.6099319","20","10","117.2185898","25","3","115.2636185"]
}

Then in your JavaScript you can simply use (reference):

var myArray = responseJSONObject.responseStr;

You may utilize JSON.js for various tasks.

0

That is a great question. JSON can return an array as simply as

{ "responseStr": [[1], [2], [3], [4] }

Cool!

Double Quotes are not necessary unless you want them as strings.

One more thing, you can have multi dimensional arrays too!

{ "responseStr": [[1,10], [2,20], [3,30], [4,40]] }

This link is a great reference:

http://json.org/fatfree.html

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.