开发者

create javascript array in json response in Java

开发者 https://www.devze.com 2023-02-23 05:24 出处:网络
I have a servlet where I send JSON response (back to javascript) . For example , my response looks like

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,1开发者_高级运维16.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?


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


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.


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

0

精彩评论

暂无评论...
验证码 换一张
取 消