eclipse bug(三)json转换中文乱码

json数据解析出来了,但是里面的中文却是乱码的


有人怎么快速解析带中文key或者数字key的json数据,示例数据格式如下:

    {
    "姓名": "张三",
    "年龄": 12
     }

最开始以为没办法使用快速解析了 只能一个个的按照键值对来取 后来感觉阿里巴巴的大牛应该早就考虑到了这些问题

于是百度了一下 发现果然有解决办法 直接用注解就好了,实体类写法如下:

[java]  view plain  copy
  1. public class PeopleBean {  
  2.     @JSONField(name = "姓名")  
  3.     String name;  
  4.     @JSONField(name = "年龄")  
  5.     int age;  
  6.     public String getName() {  
  7.         return name;  
  8.     }  
  9.     public void setName(String name) {  
  10.         this.name = name;  
  11.     }  
  12.     public int getAge() {  
  13.         return age;  
  14.     }  
  15.     public void setAge(int age) {  
  16.         this.age = age;  
  17.     }  
  18. }  

解决方法:

       (1) 追根溯源,由于json串是先从网页复制下来保存到文件里面的,然后才用fastjson读取文件(调试的时候发现读取文件的时候就发生乱码了),所以,将文件保存成utf-8类型即可。

       (2) 读取文件的时候按照utf-8格式读文件:

读取

     import  java.io.BufferedReader;  
    
import  java.io.FileInputStream;  
    
import  java.io.InputStreamReader;  
    String FileContent 
=   "" //  文件很长的话建议使用StringBuffer  
     try  { 
        FileInputStream fis 
=   new  FileInputStream( " d:\\input.txt " ); 
        InputStreamReader isr 
=   new  InputStreamReader(fis,  " UTF-8 " ); 
        BufferedReader br 
=   new  BufferedReader(isr); 
        String line 
=   null
        
while  ((line  =  br.readLine())  !=   null ) { 
            FileContent 
+=  line; 
            FileContent 
+=   "\r\n " //  补上换行符  
        } 
    } 
catch  (Exception e) { 
        e.printStackTrace(); 
    }

写入

     import  java.io.FileOutputStream; 
    
import  java.io.OutputStreamWriter; 

    String FileContent 
=   " 文件内容 "
    
try  { 
        FileOutputStream fos 
=   new  FileOutputStream( " d:\\output.txt " ); 
        OutputStreamWriter osw 
=   new  OutputStreamWriter(fos,  " UTF-8 " ); 
        osw.write(FileContent); 
        osw.flush(); 
    } 
catch  (Exception e) { 
        e.printStackTrace(); 
    }
最后没有实现

你可能感兴趣的:(eclipse,bug,日常报错,json)