zoukankan      html  css  js  c++  java
  • grails框架中读取txt文件内容将内容转换为json格式,出现异常Exception in thread "main" org.json.JSONException: A JSONObject text must begin with '{' at character 1 of [...]

    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)

    上面是报出来的异常,用了好多方法都不行,文件读取内容没有错,方法大家可以在网上找,下面是我写的方法:

     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;

    1 String filePath = "web-app/shengcssjk/yiq/yiqConfig.txt";//文件路径
    2 String data = FileUtil.getContentFromFile(filePath);//获取文件内的内容
    3 JSONObject jsonData = new JSONObject(data);

    这样解析就会出现上面的异常错误,也可能会出现其他类型的异常错误,调试很久终没结果,后来想到可能是grails框架问题,解析json串可能有框架自己的方法,后来查阅,找到如下方法,问题解决:

    1 def data = new File(filePath).text;
    2 def slurper = new JsonSlurper();
    3 def jsonData = slurper.parseText(data);
  • 相关阅读:
    Django学习之
    Django学习之
    Django学习之
    .NET 获取客户端的操作系统版本、浏览器版本和IP地址
    C#读取XML文件并取值
    C#设计模式之抽象工厂
    C#设计模式之工厂方法
    Jquery表单提交后获取返回Json值
    .Net自带缓存Cache的使用
    EasyUI第一章Application之Basic CRUD(增删改查)
  • 原文地址:https://www.cnblogs.com/smallrock/p/3514851.html
Copyright © 2011-2022 走看看