我今天在这个主题上搜索了很多。但是我找不到它,如何将JSONArray添加到JSONObject?
因为每次执行此操作都会收到此错误:Stackoverflow
JSONObject fillBadkamerFormaatFromContentlet(Structure structure, String formaat) {
JSONObject jsonObject = new JSONObject();
JSONArray arr = new JSONArray();
BadkamerFormaat badkamerFormaat = new BadkamerFormaat();
BadkamerTegel badkamerTegel;
List<Contentlet> contentlets = getContentletsByStructure(structure);
badkamerFormaat.formaat = formaat;
badkamerFormaat.tegels = new ArrayList<BadkamerTegel>();
try {
jsonObject.put("formaat", formaat);
} catch (JSONException e1) {
throw new RuntimeException(e1);
}
for(Contentlet contentlet : contentlets) {
badkamerTegel = new BadkamerTegel();
badkamerTegel.naam = contentlet.getStringProperty(ParameterNames.toolBetegelVeldNaam);
try {
badkamerTegel.afbeeldingTegel = contentlet.getBinary(ParameterNames.toolBetegelVeldTegelAfbeelding).getPath();
badkamerTegel.afbeeldingBadkamer = contentlet.getBinary(ParameterNames.toolBetegelVeldBadkamerAfbeelding).getCanonicalPath();
arr.put(badkamerTegel.toJSON());
} catch (IOException e) {
throw new RuntimeException(e);
}
}
try {
jsonObject.put("aoColumnDefs",arr);
} catch (JSONException e) {
throw new RuntimeException(e);
}
return jsonObject;
}
我收到此错误:
java.lang.StackOverflowError
at com.dotmarketing.util.json.JSONArray.<init>(JSONArray.java:248)
at com.dotmarketing.util.json.JSONObject.put(JSONObject.java:953)
at com.dotmarketing.util.json.JSONObject.put(JSONObject.java:953)
at com.dotmarketing.util.json.JSONObject.put(JSONObject.java:953)
at com.dotmarketing.util.json.JSONObject.put(JSONObject.java:953)
at com.dotmarketing.util.json.JSONObject.put(JSONObject.java:953)
at com.dotmarketing.util.json.JSONObject.put(JSONObject.java:953)
at com.dotmarketing.util.json.JSONObject.put(JSONObject.java:953)
at com.dotmarketing.util.json.JSONObject.put(JSONObject.java:953)
at com.dotmarketing.util.json.JSONObject.put(JSONObject.java:953)
at com.dotmarketing.util.json.JSONObject.put(JSONObject.java:953)
at com.dotmarketing.util.json.JSONObject.put(JSONObject.java:953)
at com.dotmarketing.util.json.JSONObject.put(JSONObject.java:953)
at com.dotmarketing.util.json.JSONObject.put(JSONObject.java:953)
at com.dotmarketing.util.json.JSONObject.put(JSONObject.java:953)
at com.dotmarketing.util.json.JSONObject.put(JSONObject.java:953)
at com.dotmarketing.util.json.JSONObject.put(JSONObject.java:953)
at com.dotmarketing.util.json.JSONObject.put(JSONObject.java:953)
at com.dotmarketing.util.json.JSONObject.put(JSONObject.java:953)
at com.dotmarketing.util.json.JSONObject.put(JSONObject.java:953)
at com.dotmarketing.util.json.JSONObject.put(JSONObject.java:953)
at com.dotmarketing.util.json.JSONObject.put(JSONObject.java:953)
at com.dotmarketing.util.json.JSONObject.put(JSONObject.java:953)
at com.dotmarketing.util.json.JSONObject.put(JSONObject.java:953)
我想要的JSON:只有最后一个JsonArray出问题了:
{
"wand": [
{
formaat: 'vierkant15x15'
tegels: [
{naam: '', imgThumb: '/bla/bla.png', largeImg: '/bla/bla2.png'}
,{naam: '', imgThumb: '/bla/bla.png', largeImg: '/bla/bla2.png'}
]
}
,
{
formaat: 'vierkant17x15'
tegels: [
{naam: '', imgThumb: '/bla/bla.png', largeImg: '/bla/bla2.png'}
,{naam: '', imgThumb: '/bla/bla.png', largeImg: '/bla/bla2.png'}
]
}
]
,“
vloer”:[{formaat:’vierkant10x15’tegels:[{naam:’‘,imgThumb:’/bla/bla.png’,largeImg:’/bla/bla2.png’},{naam:``,
imgThumb:’/bla/bla.png’,largeImg:’/bla/bla2.png’}]},
{
formaat: 'vierkant45x15'
tegels: [
{naam: '', imgThumb: '/bla/bla.png', largeImg: '/bla/bla2.png'}
,{naam: '', imgThumb: '/bla/bla.png', largeImg: '/bla/bla2.png'}
]
}
]
}
我认为您使用的API存在问题(aka错误)。
JSONArray
实现Collection
(派生此API的json.org实现 没有
JSONArray实现Collection)。并JSONObject
具有一个重载put()
方法,该方法采用Collection并将其包装在中JSONArray
(因此导致问题)。我认为您需要强制使用另JSONObject.put()
一种方法:
jsonObject.put("aoColumnDefs",(Object)arr);
您应该向供应商提出错误,非常确定他们的JSONObject.put(String,Collection)
方法已损坏。
问题内容: 大家好,我不是Json最好的。我试图通过循环将一些json对象添加到json数组中,但是问题是每次涉及到循环时,新数据也会遍历数组中的先前数据。这是我的代码: 给定X.size = 2的示例 我希望我的例子足够清楚。 如果有人能在这里帮助我,我将不胜感激。 问题答案: 您需要在循环的每次迭代中创建一个新的引用: 否则,您将一遍又一遍地更新同一实例,并将对同一对象的引用多次添加到数组中。
当我添加测试JsonObject列表时,只有最后一个JsonObject被添加到JsonArray。我不明白为什么,因为我遵循oracle的留档。https://docs.oracle.com/javaee/7/api/javax/json/JsonArray.html 名为TestRun的类中的方法 Main(注意:我使用faker生成随机信息)
问题内容: 我试图弄清楚如何将以下数据添加到我的json对象。有人可以告诉我该怎么做。 网站范例 我的JSONObject需要合并以上示例。 问题答案: 为了得到这个结果: 拥有与以下相同的数据: 您可以使用以下代码:
问题内容: RelativeLayout layout = new RelativeLayout(this); AndroidApplicationConfiguration config = new AndroidApplicationConfiguration(); View gameView = initializeForView(new MainGame(), config); 什么也没显
问题内容: 现在,我正在通过jquery加载iframe: 我有一个自定义样式表,希望将其应用于该页面。iframe中的页面不在同一域中,这就是为什么它很棘手的原因。我找到了允许您添加单个标签但不能添加整个样式表的解决方案。 编辑: 有问题的页面通过Mobile Safari 加载,因此跨域策略不适用。 问题答案: 基于解决方案您已经找到了如何将CSS应用于iframe?: 或更多jqueryis
问题内容: 我有一个gui,它的Panel包含一系列标签和TextField,并使用spring布局(这是mainPanel),而另一个Panel仅包含button(buttonPanel)。我正在尝试使我的mainPanel也具有垂直滚动条。我想实现我的GUI,以便在JFrame中有2个面板。mainPanel出现在框架的顶部,而buttonPanel出现在mainPanel的下方。 我的问题是