现在的位置: 首页 > 综合 > 正文

JSON数据解析

2019年07月20日 ⁄ 综合 ⁄ 共 2633字 ⁄ 字号 评论关闭

 

JSON采用完全独立于语言平台的文本格式。

  在之前都是使用XML的文件来保存文件数据,但是这种通过XML文件完成的数据保存却存在着一些问题。

除了一些主要数据之外,还要传一些非主要数据(不必要)。

 

 

 

在AndroidManifest.xml中配置权限:

 

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.li.json"

    android:versionCode="1"

    android:versionName="1.0" >

 

    <uses-sdk android:minSdkVersion="10" />

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

 

    <application

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name" >

        <activity

            android:name=".MyJSONDemo"

            android:label="@string/app_name" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

 

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>

 

</manifest>

 

 

 

 

在MyJSONDemo.java程序中

 

package com.li.json;

 

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.PrintStream;

 

import org.json.JSONArray;

import org.json.JSONException;

import org.json.JSONObject;

 

import android.app.Activity;

import android.os.Bundle;

import android.os.Environment;

 

public class MyJSONDemo extends Activity {

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        super.setContentView(R.layout.main);

        String data[] = new String[]{"helloliyewen@163.com",

           "http://blog.sina.com.cn/u/",

           "hao123.com"};     //要输出的数据

        JSONObject allData = new JSONObject();  //建立最外面的节点对象

        JSONArray sing = new JSONArray();  //定义操作数组

        for(int x = 0;x < data.length; x++){  //将数组内容配置到相应的节点

        JSONObject temp = new JSONObject();     //每一个包装的数据都是JSONObject

        try {

         temp.put("myurl", data[x]);

       } catch (JSONException e) {

         e.printStackTrace();

       }

        sing.put(temp);    //保存多个JSONObject

        }

        try {

       allData.put("urldata", sing);

     } catch (JSONException e) {

       e.printStackTrace();

     }

        if (!Environment.getExternalStorageState().equals(

         Environment.MEDIA_MOUNTED)) { // 不存在不操作

       return; // 返回到程序的被调用处

     }

     File file = new File(Environment.getExternalStorageDirectory()

         + File.separator + "liyewen" + File.separator

         + "json.txt"); // 要输出文件的路径

     if (!file.getParentFile().exists()) { // 文件不存在

       file.getParentFile().mkdirs() ;  // 创建文件夹

     }

        PrintStream out = null;

        try {

       out = new PrintStream(new FileOutputStream(file));

       out.print(allData.toString()); //将数据变为字符串后保存

     } catch (FileNotFoundException e) {

       e.printStackTrace();

     }

        finally{

        if(out != null){

           out.close();  //关闭输出

        }

        }

       

    }

}

 

抱歉!评论已关闭.