将JSON从Java返回到Worklight Adapter

时间:2014-03-03 06:39:50

标签: java json worklight-adapters

我有一个类 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;
}

任何帮助都将不胜感激。

2 个答案:

答案 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();
}