我有一个类 FileHandling ,其中有一个名为 readAllLayouts 的方法,它将读取指定文件夹中的所有文件,并将内容作为JSONArray返回到worklight适配器。< / p>
调用worklight过程时遇到此类错误:
{
"errors": [
"Evaluator: Java class \"org.json.simple.JSONArray\" has no public instance field or method named \"isSuccessful\"."
],
"info": [
],
"isSuccessful": false,
"warnings": [
]
}
这是我的Java方法的代码:
public static JSONArray readAllLayoutFiles ( ){
File layoutDir = new File( LAYOUT_PARENT_DIR );
String allFiles[] = layoutDir.list();
System.out.println( "All Files Length : " + allFiles.length );
JSONObject obj = null;//new JSONObject[ allFiles.length ];
JSONArray retArr = new JSONArray();
for ( String f : allFiles ){
obj= new JSONObject();
obj.put( "layoutname", f.replaceAll (".txt", "" ) );
obj.put( "layouthtml", readLayoutFile ( f ) );
retArr.add(obj);
}
obj= new JSONObject();
obj.put( "isSuccessful", true );
retArr.add(obj);
System.out.println( retArr.toString() );
return retArr;
}
任何帮助都将不胜感激。
答案 0 :(得分:0)
为什么&#34;是成功的&#34;输出中为false,而在代码中设置为true?
答案 1 :(得分:0)
由于这个问题,我已经改变了我的代码,但是现在它没有返回JSON,而是返回包含JSON的String。
这是代码和工作正常:
public static String readAllLayoutFiles ( ){
File layoutDir = new File( LAYOUT_PARENT_DIR );
String allFiles[] = layoutDir.list();
System.out.println( "All Files Length : " + allFiles.length );
JSONObject obj = null;//new JSONObject[ allFiles.length ];
JSONArray retArr = new JSONArray();
for ( String f : allFiles ){
obj= new JSONObject();
obj.put( "layoutname", f.replaceAll (".txt", "" ) );
obj.put( "layouthtml", readLayoutFile ( f ) );
retArr.add(obj);
}
obj= new JSONObject();
obj.put( "isSuccessful", true );
retArr.add(obj);
System.out.println( retArr.toJSONString() );
return retArr.toJSONString();
}