0
var  data = [
        {lastName: "Dente", name: "Al"},
        {lastName: "Noring", name: "Constance"},
        {lastName: "Haas", name: "Jack"},
        {lastName: "Tress", name: "Matt"},
        {lastName: "Turner", name: "Paige"}
    ];

これは私が作成したいJavaScript配列です。このデータをサーブレットから送信し、javascript で配列オブジェクトを作成する方法。

String dataString=/*prepare data */
response.getWriter().write(dataString);

サーブレットでこの dataString を準備する方法と、クライアントでその文字列から配列を作成する方法 ??

4

2 に答える 2

2

次の Java クラスがある場合:

public class Person {
    private String lastName;
    private String name;

    public Person(String lastName, String name) {
        this.lastName = lastName;
        this.name = name;
    }

    /* getters and setters */
}

次に、 Gsonを使用して次の方法でデータを簡単に生成できます。

List<Person> people = new ArrayList<Person>();

people.add(new Person("Smith", "John"));
people.add(new Person("Example", "An"));

String json = gson.toJson(people);

json変数の値は になります[{"lastName": "Smith", "name": "John"},{"lastName": "Example", "name": "An"}]

次に、それをサーブレットからの応答として送信します。要求のコンテンツ タイプを に設定することを忘れないでくださいapplication/json

JavaScript でデータを処理するには、jQuery の.getJSON()メソッドを使用することをお勧めします。

$.getJSON('url of servlet', function (data) {
    console.log(data); // <-- data will be an Array containing two objects
});
于 2012-10-09T10:53:20.490 に答える
1

net.sf.json.JSONObjectサーバーサイドでこれを達成するために使用します

サーバ側:

public class Data {
    String lastName;
    String name;
//......constructors,getters,setters
}

ArrayList<Data> serverData = new ArrayList<Data>();
serverData.add(new Data("Fred", "Flintstones"));
serverData.add(new Data("Wilma", "Flintstones"));
String jsonStr = JSONObject.fromObject(serverData);
response.getWriter().write(jsonStr);

JSON.parseクライアント側で使用

クライアント側:

function ajaxCallback(data) {
    var jObj = JSON.parse(data);
    for(var i in jsonObject)
    {alert(jObj[i].name+" "+jObj[i].lastName);}
}

お役に立てれば!

于 2012-10-09T11:45:43.040 に答える