-3

私は開いているソケットから取得しているこの JSON オブジェクトを持っています:

{
 "action" : "login",
 "id" : "1554",
 "name": "asaf",
 "lat" : "26.519966",
 "long" : "-4.151437",
 "radius":"0", 
  "data":[
          {"id":"12345"},
          {"id":"1234"},
          {"id":"123"}
         ]
}

私がやっているときの私のコード内:

stream = new JSONObject(input);

(入力はソケットからの私のオブジェクトです)私は java.lang.OutOfMemoryError Java Heap を取得しています..

理由がよくわかりません…

スタックトレース:

Exception in thread "Worker for Socket:     Socket[addr=/0:0:0:0:0:0:0:1,port=52571,localport=9001]" java.lang.OutOfMemoryError: Java     heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.util.Arrays.copyOf(Unknown Source)
at java.util.ArrayList.ensureCapacity(Unknown Source)
at java.util.ArrayList.add(Unknown Source)
at org.json.JSONArray.<init>(JSONArray.java:117)
at org.json.JSONTokener.nextValue(JSONTokener.java:322)
at org.json.JSONObject.<init>(JSONObject.java:205)
at ServerWorker.run(ServerWorker.java:80)
4

1 に答える 1

1

JSON 応答が大きい場合は、おそらく次のようにすることができます。

stream = new JSONObject(new JSONTokener(input)):
于 2012-05-21T08:23:03.257 に答える