gpt4 book ai didi

Android App中读取XML与JSON格式数据的基本方法示例

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 28 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Android App中读取XML与JSON格式数据的基本方法示例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

xml 假如有这样一个xml格式的数据:

?
1
2
3
4
5
6
<?xml version= "1.0" encoding= "utf-8" ?>
<resources>
<customer name= "luopeng" age= "21" gender= "1"   emial= "dylankeepmoving@163.com" />
<customer name= "dylan" age= "22" gender= "2" emial= "710097663@qq.com" />
<customer name= "android" age= "6" gender= "2" emial= "android@gmail.com" />
</resources>

下面我们来编写一个类来读取,此类的作用是点击按钮后在editview上显示资源文件(一个xml)中的内容,此例中会使用到xmlresourceparser 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public class testxmlresourceparseractivity extends activity {
private edittext et;
private button mybutton;
 
@override
public void oncreate(bundle savedinstancestate) {
   super .oncreate(savedinstancestate);
   setcontentview(r.layout.main);
 
   // 变量在内部类中使用的前提是此变量必须是final修饰的
   mybutton = (button) this .findviewbyid(r.id.btn01);
   et = (edittext) this .findviewbyid(r.id.edittext01);
   mybutton.setonclicklistener( new onclicklistener() {
     stringbuilder sb = new stringbuilder( "" );
     resources res = getresources();
     xmlresourceparser xrp = res.getxml(r.xml.test);
 
     @override
     public void onclick(view v) {
       int counter = 0 ;
       try {
         // 判断是否到了文件的结尾
         while (xrp.geteventtype() != xmlresourceparser.end_document) {
           //文件的内容的起始标签开始,注意这里的起始标签是test.xml文件里面<resources>标签下面的第一个标签
           if (xrp.geteventtype() == xmlresourceparser.start_tag) {
             string tagname = xrp.getname();
             if (tagname.endswith( "customer" )) {
               counter++;
               sb.append( "这是第" + counter + "客户" + "\n" );
               sb.append( "姓名:" +xrp.getattributevalue( 0 )+ "\n" );
               sb.append( "年龄:" +xrp.getattributevalue( 1 )+ "\n" );
               sb.append( "性别:" +xrp.getattributevalue( 2 )+ "\n" );
               sb.append( "邮箱:" +xrp.getattributevalue( 3 )+ "\n\n" );
             }
           }
           xrp.next();
         }
         et.settext(sb.tostring());
       } catch (xmlpullparserexception e) {
       } catch (ioexception e) {
         e.printstacktrace();
       }
     }
   });
}

json 创建json数据 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
try {
     //首先创建对象中的一个单个键值对
     jsonobject root = new jsonobject();
     root.put( "cat" , "it" );
     //另一个键值对的值是一个数组,数组里装了3个json对象,所以再分别搞3个jsonobject对象存放键值对
     jsonobject lan1 = new jsonobject();
     lan1.put( "id" , "1" );
     lan1.put( "ide" , "eclipse" );
     lan1.put( "name" , "java" );
     jsonobject lan2 = new jsonobject();
     lan2.put( "id" , "2" );
     lan2.put( "ide" , "xcode" );
     lan2.put( "name" , "swift" );
     jsonobject lan3 = new jsonobject();
     lan3.put( "id" , "2" );
     lan3.put( "ide" , "visual studio" );
     lan3.put( "name" , "c#" );
     //在将这3个对象存入一个数组
     jsonarray array = new jsonarray();
     array.put(lan1);
     array.put(lan2);
     array.put(lan3);
     //再将数组作为键"languages"的值,构成一个对象
     root.put( "languages" , array);
     //本例中只将内容输出出来
     system.out.println(root.tostring());
 
   } catch (jsonexception e) {
     e.printstacktrace();
   }

读取json数据 assets/test.json 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
{
   "languages" :[
     { "id" : 1 , "ide" : "eclipse" , "name" : "java" },
     { "id" : 2 , "ide" : "xcode" , "name" : "swift" },
     { "id" : 3 , "ide" : "visual studio" , "name" : "c#" },
   ],
   "cat" , "it"
}
try {
     inputstream is = getresources().getassets().open( "test.json" );
     inputstreamreader isr = new inputstreamreader(is, "utf-8" );
     bufferedreader br = new bufferedreader(isr);
     //将文本中的数据,都读取到一个stringbuilder当中
     string line;
     stringbuilder builder = new stringbuilder();
     while ((line=br.readline()) != null ){
       builder.append(line);
     }
     br.close();
     isr.close();
 
     jsonobject root = new jsonobject(builder.tostring());
     //根据键,获得键对应的值,由于值是string类型,所以用getstring
     system.out.println( "cat=" +root.getstring( "cat" ));
     //根据键,获得键对应的数组,由于值是一个数组,所以用getjsonarray
     jsonarray array = root.getjsonarray( "languages" );
     //由于要遍历数组,所以创建一个for循环
     for ( int i= 0 ; i < array. length(); i++){
       //由于每一个数组当中的元素,也是一个新的json对象
       jsonobject lan = array.getjsonobject(i);
       system.out.println( "-------------------" );
       system.out.println( "id=" +lan.getint( "id" ));
       system.out.println( "ide=" +lan.getstring( "name" ));
       system.out.println( "name=" +lan.getstring( "name" ));
       log.i( "tag" , "-------" );
     }
 
   } catch (ioexception e) {
     e.printstacktrace();
   } catch (jsonexception e) {
     // todo auto-generated catch block
     e.printstacktrace();
   }

最后此篇关于Android App中读取XML与JSON格式数据的基本方法示例的文章就讲到这里了,如果你想了解更多关于Android App中读取XML与JSON格式数据的基本方法示例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com