• 解析xml和json[转]


    http://www.cnblogs.com/Ashia/archive/2012/03/09/2386073.html

    今天彻底被 json 伤到了

    03-08 13:45:44.648: W/System.err(14432): org.json.JSONException: Value of type java.lang.String cannot be converted to JSONArray

    该异常有 json 文件编码所引起的,所以切切不要应用 记事本 编辑 json 文件,而应选择其他文本编辑器,如 EditPlus ,并重视保存编码格局为 UTF-8,不然可能产生中文乱码。

    用记事本编辑后,即使 另存为 UTF-8 情势,也会产生乱码,因为保存在为 UTF-8 + BOM 编码

    因为我是将 json 文件放在 tomcat ,进行读取的。从而导致该题目产生。


    public class BlogService {

    // 解析 json
    public List<Blog> getBlogsByJSON() throws Exception {
    URL url = new URL("http://192.168.1.111:8080/examples/json.txt");
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setConnectTimeout(5000);

    List<Blog> blogs = null;

    if (conn.getResponseCode() == 200) {
    byte[] data = LoadUtil.load(conn.getInputStream());
    String json = new String(data);
    JSONArray array = new JSONArray(json);

    blogs = new ArrayList<Blog>();
    Blog blog = null;

    for (int i = 0; i < array.length(); i++) {
    JSONObject obj = array.getJSONObject(i);
    blog = new Blog(obj.getInt("id"), obj.getString("protraint"), obj.getString("name"), obj.getString("content"), obj.getString("picture"));
    blogs.add(blog);
    }
    }
    return blogs;
    }

    // 解析 xml
    public List<Blog> getBlogs() throws Exception {
    URL url = new URL("http://192.168.1.254:8080/14.Web/blog.xml");
    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setConnectTimeout(5000);

    if (conn.getResponseCode() == 200) {
    XmlPullParser parser = Xml.newPullParser();
    parser.setInput(conn.getInputStream(), "UTF-8");

    List<Blog> blogs = null;
    Blog blog = null;

    for (int event = parser.getEventType(); event != XmlPullParser.END_DOCUMENT; event = parser.next())
    if (event == XmlPullParser.START_TAG) {
    if ("blogs".equals(parser.getName()))
    blogs = new ArrayList<Blog>();
    if ("blog".equals(parser.getName())) {
    blog = new Blog();
    blog.setId(Integer.parseInt(parser.getAttributeValue(0)));
    blogs.add(blog);
    }
    if ("protraint".equals(parser.getName()))
    blog.setProtraint(parser.nextText());
    if ("username".equals(parser.getName()))
    blog.setUsername(parser.nextText());
    if ("content".equals(parser.getName()))
    blog.setContent(parser.nextText());
    if ("picture".equals(parser.getName()))
    blog.setPicture(parser.nextText());
    }
    return blogs;
    }

    throw new NetworkErrorException("接见收集异常");
    }

    }
  • 相关阅读:
    curl 带 body
    import com.sun.org.apache.xml.internal.security.utils.Base64问题
    动静分离业务解决网页请求不被串改
    java 主动信任证书
    IO 多路复用详解
    spanish-1.1
    spring data JPA entityManager查询 并将查询到的值转为实体对象
    微信二维码支付报错
    军训入营学生发言稿
    电位器控制两个 LED 灯交替闪烁
  • 原文地址:https://www.cnblogs.com/afly/p/StringcannotbeconvertedtoJSONArray.html
Copyright © 2020-2023  润新知