DOM元素是一个对象,一个在内存中的东西。与OOP中的大多数对象一样,它具有属性。它还单独包含元素上定义的属性的映射(通常来自浏览器读取以创建元素的标记)。有些元素的属性得到他们最初从值属性具有相同或相似名称(value从“值”属性获取其初始值; href从“href”属性获取其初始值,但它不是完全一样的值; className从“阶级”属性)。其他属性以其他方式获取其初始值:例如,parentNode属性根据其父元素获取其值;style 属性,是否具有“样式”属性。

让我们在页面中考虑这个锚http://example.com/testing.html:

Hi

一些无偿的ASCII艺术(并遗漏了很多东西):

+ ------------------------------------------- +

| HTMLAnchorElement |

+ ------------------------------------------- +

| href:“http://example.com/foo.html”|

| 名称:“fooAnchor”|

| id:“fooAnchor”|

| className:“test one”|

| 属性:|

| href:“foo.html”|

| 名称:“fooAnchor”|

| id:“fooAnchor”|

| 类:“测试一个”|

+ ------------------------------------------- +

请注意,属性和属性是不同的。

现在,虽然它们是截然不同的,因为所有这些都是从头开始设计的,而不是从头开始设计,如果你设置它们,许多属性会回写它们派生的属性。但并非所有人都这样做,而且从href上面可以看出,映射并不总是直接“传递价值”,有时会涉及到解释。

当我谈到属性是对象的属性时,我不是在抽象地说。这是一些非jQuery代码:

var link = document.getElementById('fooAnchor');

alert(link.href);                 // alerts "http://example.com/foo.html"

alert(link.getAttribute("href")); // alerts "foo.html"

(这些值与大多数浏览器一样;有一些变化。)

该link物体是一个真实的东西,你可以看到有访问之间的真正的区别属性就可以了,和访问的属性。编写JSON解析器类

public class JSONParser {

static InputStream is = null;

static JSONObject jObj = null;

static String json = "";

// constructor

public JSONParser() {}

public JSONObject getJSONFromUrl(String url) {

// Making HTTP request

try {

// defaultHttpClient

DefaultHttpClient httpClient = new DefaultHttpClient();

HttpPost httpPost = new HttpPost(url);

HttpResponse httpResponse = httpClient.execute(httpPost);

HttpEntity httpEntity = httpResponse.getEntity();

is = httpEntity.getContent();

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

} catch (ClientProtocolException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

try {

BufferedReader reader = new BufferedReader(new InputStreamReader(

is, "iso-8859-1"), 8);

StringBuilder sb = new StringBuilder();

String line = null;

while ((line = reader.readLine()) != null) {

sb.append(line + "\n");

}

is.close();

json = sb.toString();

} catch (Exception e) {

Log.e("Buffer Error", "Error converting result " + e.toString());

}

// try parse the string to a JSON object

try {

jObj = new JSONObject(json);

} catch (JSONException e) {

Log.e("JSON Parser", "Error parsing data " + e.toString());

}

// return JSON String

return jObj;

}

}

解析JSON数据一旦你创建了解析器类,下一步就是知道如何使用该类。下面我将解释如何使用解析器类解析json(在此示例中使用)。

2.1。将所有这些节点名称存储在变量中:在联系人json中,我们有名称,电子邮件,地址,性别和电话号码等项目。首先,将所有这些节点名称存储在变量中。打开主活动类并声明将所有节点名称存储在静态变量中。

// url to make request

private static String url = "http://api.9android.net/contacts";

// JSON Node names

private static final String TAG_CONTACTS = "contacts";

private static final String TAG_ID = "id";

private static final String TAG_NAME = "name";

private static final String TAG_EMAIL = "email";

private static final String TAG_ADDRESS = "address";

private static final String TAG_GENDER = "gender";

private static final String TAG_PHONE = "phone";

private static final String TAG_PHONE_MOBILE = "mobile";

private static final String TAG_PHONE_HOME = "home";

private static final String TAG_PHONE_OFFICE = "office";

// contacts JSONArray

JSONArray contacts = null;

2.2。使用解析器类获取JSONObject并循环遍历每个json项。下面我创建一个JSONParser类的实例并使用for循环我循环遍历每个json项目,最后将每个json数据存储在变量中。

// Creating JSON Parser instance

JSONParser jParser = new JSONParser();

// getting JSON string from URL

JSONObject json = jParser.getJSONFromUrl(url);

try {

// Getting Array of Contacts

contacts = json.getJSONArray(TAG_CONTACTS);

// looping through All Contacts

for(int i = 0; i < contacts.length(); i++){

JSONObject c = contacts.getJSONObject(i);

// Storing each json item in variable

String id = c.getString(TAG_ID);

String name = c.getString(TAG_NAME);

String email = c.getString(TAG_EMAIL);

String address = c.getString(TAG_ADDRESS);

String gender = c.getString(TAG_GENDER);

// Phone number is agin JSON Object

JSONObject phone = c.getJSONObject(TAG_PHONE);

String mobile = phone.getString(TAG_PHONE_MOBILE);

String home = phone.getString(TAG_PHONE_HOME);

String office = phone.getString(TAG_PHONE_OFFICE);

}

} catch (JSONException e) {

e.printStackTrace();

}

json boolean android,如何解析Android中的JSON?相关推荐

  1. jsp java json解析,jsp中获取json字符串,并解析

    JqueryDemo1 function showData() { var str='{ "name": "John" }';//json标准格式 var ob ...

  2. js判断json有没有某值_JS中判断JSON数据是否存在某字段的方法 JavaScript中判断json中是否有某个字段...

    方式一 !("key" in obj) 方式二 obj.hasOwnProperty("key")  //obj为json对象. 实例: var jsonwor ...

  3. python中json模块博客园_Python中的Json模块详解

    Python中的Json模块详解 Json(JavaScript Object Notation)它是一种轻量级的数据交换格式,具有数据格式简单,读写方便易懂等很多优点.许多主流的编程语言都在用它来进 ...

  4. java中转json字符串_如何在Java中转义JSON字符串-Eclipse IDE技巧

    java中转json字符串 在Java应用程序中工作或进行JSON解析时,通常很常见的做法是从某些资源(例如RESTful Web服务)中复制粘贴JSON字符串,然后使用Jackson库解析JSON. ...

  5. json mysql 字段 默认值_MySQL中的JSON类型

    前言(废话) 昨天抽了点时间在网上搜列了一个开源项目,项目挺完整的,前后台分离还带有微信小程序,我Clone下代码,经过一番倒腾,嘿~还真就跑起来了.在这个过程中,体验了一把VUE项目工程细节,因为之 ...

  6. mysql+json+检索_如何从mysql中检索JSON数据?

    我有以下表格和他们的关系.我将json数据存储在client_services表中.他们是否可以使用mysql查询检索JSON值.喜欢: select getJson("quota" ...

  7. Android Studio安卓开发中使用json来作为网络数据传输格式

    如果你是在安卓开发中并且使用android studio,要使用json来作为数据传输的格式,那么下面是我的一些经验. 一开始我在android studio中导入那6个包,那6个包找了非常久,因为放 ...

  8. Android之解析Android Map地图返回的Json数据

    先上一下需要解析的Json数据: {    "results" : [       {          "address_components" : [   ...

  9. android bean类型,Android Gson解析数组中多种类型

    最近空闲时间在一款仿某条的app,一开始,采用的是api store中的数据源,但是这样,好多功能因为不能得到接口支持不能实现,因此只能......通过fiddler抓 某条 的接口了.. 在抓一个接 ...

最新文章

  1. pdf批量添加图章_关于添加图章,过来人有哪些实用经验
  2. 网络摄像机如何与路由器连接方法
  3. 设备驱动程序INF文件
  4. Face-landmarks-detection-benchmark 人脸特征定位网站汇总
  5. mysql数据库支持emoji表情的详解
  6. 电脑开机卡住了怎么办_苹果电脑忘记开机密码怎么办?一段代码轻松解决
  7. java知识总结-13
  8. Lock and Load FCPX 报错处理方法
  9. SpringBoot+Vue项目个性化音乐推荐系统
  10. 关于数据库学习的一些知识盲区
  11. VOC数据集解析 VOC2007解析
  12. 卸载WPS后office文档图标不能正常显示和WPS网盘图标无法删除
  13. ERROR: Cannot uninstall ‘PyYAML’. It is a distutils installed project and thus we cannot accurately
  14. ABAP OLE下载到EXCEL
  15. JAVA删除pdf空白页_如何从iText中的PDF中删除空白页面
  16. MATLAB数字图像处理系统——边缘检测
  17. 晶联讯LCD(JLX128128G-610-PC)使用教程
  18. 万字长文保姆级教你制作自己的多功能QQ机器人
  19. vue 下载文件流和捕获后端返回的状态码和错误信息的方法
  20. 通达OA审批流程添加水印功能,支持预览、办理和打印

热门文章

  1. 三线表是什么?R语言使用table1包绘制(生成)三线表、使用单变量分列构建三线表、编写自定义三线表结构(将因子变量细粒度化重新构建三线图)、编写自定义函数在三线表中添加p值
  2. pandas使用stack函数、map函数、unstack函数以及字典同时替换dataframe多个数据列的内容
  3. Plotly绘制时间序列图实战:简单时序图、时间范围限制的时序图
  4. R创建透视表(Pivot Tables)
  5. 假设你有一个多层感知机网络(MLP),输入层有10个节点、一个单隐层共50个神经元,最后是一个3个神经元的输出层。请问网络的结构是什么样子的使用数学形式进行描述?
  6. SQL语法中drop,delete与truncate的区别
  7. CRISP-DM (cross-industry standard process for data mining)跨行业数据挖掘过程标准
  8. java测试时间的类,java 测试五种单例模式需要的时间
  9. oracle@命令_Oracle 常用运维命令整理
  10. Java中的OutOfMemoryError的各种情况及解决方法