【问题标题】:java JSONObject initialization returen java.lang.OutOfMemoryError java Heapjava JSONObject 初始化返回 java.lang.OutOfMemoryError java Heap
【发布时间】:2012-05-21 08:18:15
【问题描述】:

我有这个从打开的套接字获取的 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)

【问题讨论】:

  • 请发布一个堆栈跟踪。
  • 请写下你的完整代码。
  • 这是我的完整代码... ServerWorker 的第 80 行是 stream = new JSONObject(input);

标签: java json


【解决方案1】:

如果您的 JSON 响应很大,您可能可以这样做:

stream = new JSONObject(new JSONTokener(input)):

【讨论】:

猜你喜欢
  • 2012-08-03
  • 2016-04-15
  • 2013-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-25
  • 2014-06-15
相关资源
最近更新 更多