跪求 一个Android 读取SD卡里的 json 文件的解析,要完整代码

跪求 一个Android 读取SD卡里的 json 文件的解析,要完整代码,第1张

public class MainActivity extends ActionBarActivity {

    private static final String PATH = EnvironmentgetExternalStorageDirectory() + "/123json";

    private androidwidgetTextView jsonTv;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        superonCreate(savedInstanceState);

        setContentView(Rlayoutactivity_main);

        thisjsonTv = (TextView) findViewById(RidjsonTv);

        new Thread() {

            @Override

            public void run() {

                Message msg = handlerobtainMessage();

                msgobj = getFileFromSD(PATH);

                msgwhat = 1;

                handlersendMessage(msg);

            }

        }start();

    }

    private Handler handler = new Handler() {

        @Override

        public void handleMessage(Message msg) {

            if (msgwhat == 1) {

                String result = (String) msgobj;

                try {

                    JSONObject jObj = new JSONObject(result);

                    jsonTvsetText("name:"+jObjgetString("name")+",age:"+jObjgetInt("age"));

                } catch (JSONException e) {

                    eprintStackTrace();

                }

            }

        }

    };

    private String getFileFromSD(String path) {

        String result = "";

        try {

            FileInputStream f = new FileInputStream(path);

            BufferedReader bis = new BufferedReader(new InputStreamReader(f));

            String line = "";

            while ((line = bisreadLine()) != null) {

                result += line;

            }

        } catch (Exception e) {

            eprintStackTrace();

        }

        return result;

    }

}<RelativeLayout xmlns:android="

    xmlns:tools="

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:paddingBottom="@dimen/activity_vertical_margin"

    android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    tools:context="MainActivity">

    <TextView

        android:id="@+id/jsonTv"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        />

</RelativeLayout>

最后,记得在AndroidMenifest文件中加入权限

<uses-permission android:name="androidpermissionREAD_EXTERNAL_STORAGE"/>

123json的内容

{"name":"rock","age":20}

因为这次要从服务器端得到Json数据,并且通过解析之后把解析后的数据显示在Android客户端中,首先部署服务器端代码(直接使用Jsp/Servlet):

构造的Json数据如下:

[{"name":"张三","address":"北京","age":20},{"name":"李四","address":"上海","age":30},{"name":"王五","address":"深圳","age":35}]

[一]服务器端(Personjava省略):

①:数据构造JsonServicejava

public class JsonService {

public static List<Person> getListPerson() {

List<Person> mLists = new ArrayList<Person>();

mListsadd(new Person("张三", "北京", 20));

mListsadd(new Person("李四", "上海", 30));

mListsadd(new Person("王五", "深圳", 35));

return mLists;

}

②:Servlet的代码(包括构造Json数据,没有使用Json数据转换方法)JsonServletjava

public void doGet(>

assets资源目录一般用于存放html文件、数据库文件、javascript文件,assets目录下的文件不会在Rjava自动生成ID,所以读取assets目录下的文件必须指定文件的路径

在代码中使用AssertManager获取文件的输入流读取

AssetManager assetManager = contextgetAssets();

try {

InputStream is = assetManageropen("jsondata");

BufferedReader br = new BufferedReader(new InputStreamReader(is));

StringBuffer stringBuffer = new StringBuffer();

String str = null;

while((str = brreadLine())!=null){

stringBufferappend(str);

}

} catch (IOException e) {

eprintStackTrace();

}

也可以把json文件放在res的raw目录下

res/raw中的文件会被映射到Rjava文件中,访问的时候直接使用资源ID即Ridfilename;

但是需要注意的是assets允许有目录结构,而raw不行

读取方法大同小异

try {

InputStream is = getResources()openRawResource(Ridfile);

BufferedReader br = new BufferedReader(new InputStreamReader(is));

StringBuffer stringBuffer = new StringBuffer();

String str = null;

while((str = brreadLine())!=null){

stringBufferappend(str);

}

} catch (IOException e) {

eprintStackTrace();

}

//这种要用post方式了,//将json数据以字符串的方式上传给服务器,//当然你要确保json格式的正确性,如果数据很少的话,可以手动拼装json字符串,//否则就要弄json对象生成//我们项目中也有这个需求,但是数据并不多,我就手动拼装的String json

使用守则

首先,我们要创建Web服务,从MySQL数据库中读取数据。

<php

<pre>/ require the user as the parameter /

<pre>//>

以上就是关于跪求 一个Android 读取SD卡里的 json 文件的解析,要完整代码全部的内容,包括:跪求 一个Android 读取SD卡里的 json 文件的解析,要完整代码、android 在服务器端生成json格式数据,在客户端怎么解析、android加载assets中的json格式文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9657855.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存