Exception in thread "main" org.json.JSONException: A JSONObject text must begin with '{' at character 1 of [data:[[.....] at org.json.JSONTokener.syntaxError(JSONTokener.java:450) at org.json.JSONObject.<init>(JSONObject.java:179) at org.json.JSONObject.<init>(JSONObject.java:326) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77) at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:102) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:182) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190) at com.zhiren.common.shengcssjkUtil.main(shengcssjkUtil.groovy:14)
上面是报出来的异常,用了好多方法都不行,文件读取内容没有错,方法你们能够在网上找,下面是我写的方法:css
1 /** 2 * 根据指定文件路径读取文件内容 3 * @param filePath 文件路径 4 * @return 文件内容 5 */ 6 def static String getContentFromFile(String filePath) { 7 try { 8 String encoding = "UTF-8";//定义编码格式 9 File file = new File(filePath); 10 if(file.isFile() && file.exists()) {//判断文件是否存在 11 InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream(file)); 12 BufferedReader bufferedReader = new BufferedReader(inputStreamReader); 13 StringBuilder sbData = new StringBuilder(); 14 String data = ""; 15 while((data = bufferedReader.readLine()) != null) { 16 sbData.append(data); 17 } 18 bufferedReader.close(); 19 inputStreamReader.close(); 20 return sbData.toString(); 21 } else { 22 return "文件不存在!"; 23 } 24 } catch(Exception e) { 25 e.printStackTrace(); 26 return "文件读取异常!"; 27 } 28 }
下面是解析得到文件内容的方法,引用的jar包是import org.json.JSONObject;java
1 String filePath = "web-app/shengcssjk/yiq/yiqConfig.txt";//文件路径 2 String data = FileUtil.getContentFromFile(filePath);//获取文件内的内容 3 JSONObject jsonData = new JSONObject(data);
这样解析就会出现上面的异常错误,也可能会出现其余类型的异常错误,调试好久终没结果,后来想到多是grails框架问题,解析json串可能有框架本身的方法,后来查阅,找到以下方法,问题解决:web
1 def data = new File(filePath).text; 2 def slurper = new JsonSlurper(); 3 def jsonData = slurper.parseText(data);