`
bewithme
  • 浏览: 431609 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

读取JSON所有元素的属性和值

 
阅读更多

    有时候需要用JAVA将JSON字符串中的所有元系属性和值解析出来,例如:

String sql="[{\"typeNo\":\"PTMM01\",\"typeValue\":\"1\"},{\"typeNo\":\"PTMM02\",\"typeValue\":\"2\"}]";

 

你需要得到[typeNo:PTMM01, typeValue:1, typeNo:PTMM02, typeValue:2 ]这种属性和值对应的集合。

 

/**
	 * {读取JSON字符串的所有元素的属性和值,按此原理可以改造成功能更强大的JSON解析类}
	 * @author wenfeng.xu
	 * 
	 */
	public List convertJosnString(String str){
		List retVal=new ArrayList();
		String SYMBOL_OPEN_BRACE="{";
		String SYMBOL_CLOSE_BRACE="}";
		String SYMBOL_SINGLE_QUO_MARKS="\"";
		String SYMBOL_COLON=":";
		String SYMBOL_COMMA=",";
		String SYMBOL_OPEN_BRACKET="[";
		String SYMBOL_CLOSE_BRACKET="]";
		String PRE_SYMBOL_SINGLE_QUO_MARKS_0="PRE_SYMBOL_SINGLE_QUO_MARKS_0";//第一个单引号的索引
		String PRE_SYMBOL_SINGLE_QUO_MARKS_1="PRE_SYMBOL_SINGLE_QUO_MARKS_1";
		String PRE_SYMBOL_SINGLE_QUO_MARKS_2="PRE_SYMBOL_SINGLE_QUO_MARKS_2";
		String PRE_SYMBOL_SINGLE_QUO_MARKS_3="PRE_SYMBOL_SINGLE_QUO_MARKS_3";
		Map temMap=new HashMap();
		char[] temChar=str.toCharArray();
		for(int i=0;i<temChar.length;i++)
		{
			
			if(temMap.get(PRE_SYMBOL_SINGLE_QUO_MARKS_3)==null)
			{
			if(temChar[i]==SYMBOL_COLON.charAt(0))
			{
				temMap.put(SYMBOL_COLON,SYMBOL_COLON);
			}
			
			if(temChar[i]==SYMBOL_SINGLE_QUO_MARKS.charAt(0))
			{
				if(temMap.get(SYMBOL_SINGLE_QUO_MARKS)==null)
				{
					temMap.put(SYMBOL_SINGLE_QUO_MARKS,i);
				}else{//如果已经存在一个单引号
			        
			        if(temMap.get(SYMBOL_COLON)==null){//如果不存在冒号
			        	  temMap.put(PRE_SYMBOL_SINGLE_QUO_MARKS_0,Integer.parseInt(temMap.get(SYMBOL_SINGLE_QUO_MARKS).toString())+1);
					      temMap.put(PRE_SYMBOL_SINGLE_QUO_MARKS_1,i);
			        }else{
			      	      temMap.put(PRE_SYMBOL_SINGLE_QUO_MARKS_2,Integer.parseInt(temMap.get(SYMBOL_SINGLE_QUO_MARKS).toString())+1);
				          temMap.put(PRE_SYMBOL_SINGLE_QUO_MARKS_3,i);
		            }
			        temMap.remove(SYMBOL_SINGLE_QUO_MARKS);
			        
				}
			}
			}else{
				   int index_0=Integer.parseInt(temMap.get(PRE_SYMBOL_SINGLE_QUO_MARKS_0).toString());
				   int index_1=Integer.parseInt(temMap.get(PRE_SYMBOL_SINGLE_QUO_MARKS_1).toString()); 
				   int index_2=Integer.parseInt(temMap.get(PRE_SYMBOL_SINGLE_QUO_MARKS_2).toString()); 
				   int index_3=Integer.parseInt(temMap.get(PRE_SYMBOL_SINGLE_QUO_MARKS_3).toString());
				   String attr=str.substring(index_0,index_1);
				   String value=str.substring(index_2,index_3);
				   retVal.add(attr+":"+value);
				   temMap.remove(PRE_SYMBOL_SINGLE_QUO_MARKS_0);
				   temMap.remove(PRE_SYMBOL_SINGLE_QUO_MARKS_1);
				   temMap.remove(PRE_SYMBOL_SINGLE_QUO_MARKS_2);
				   temMap.remove(PRE_SYMBOL_SINGLE_QUO_MARKS_3);
				   temMap.remove(SYMBOL_COLON);
			}
		}
		
		return retVal;
	}

 

 我的网店,有劳各位参观参观 http://mrs-x.taobao.com/

 

分享到:
评论

相关推荐

    C# 获取json字段中指定值

    在这个场景中,我们将关注如何使用C#和Newtonsoft.Json库来高效地获取JSON对象中的指定值。 首先,Newtonsoft.Json是C#中最流行的JSON处理库,它提供了丰富的功能,如序列化、反序列化、查询和转换JSON等。要安装此...

    jQuery ajax读取json文件内容

    具体操作中,`content`变量构建了一个字符串,包含了当前对象的所有属性值,并以逗号分隔,最后加上换行符。`$("#result").append(content);`这行代码将构建好的字符串追加到了页面上ID为"result"的元素内,实现了...

    C#读取修改Json文件

    **读取JSON文件** 1. **使用System.Text.Json** - `using System.Text.Json;` - `string jsonString = File.ReadAllText("path_to_file.json");` 读取文件内容为字符串。 - `JsonDocument doc = JsonDocument....

    C#winform中读写json文件

    这个示例中,我们创建了一个`Person`类,然后在按钮事件中分别实现了读取JSON文件和写入JSON文件的功能。 总结,C# WinForm应用中读写JSON文件主要依赖于Newtonsoft.Json库。通过简单的序列化和反序列化操作,我们...

    jQuery+ajax按条件读取json文件内容

    在这个示例中,我们看到一个使用jQuery和Ajax实现的功能,该功能根据特定条件从JSON文件中读取数据并将其显示在网页上。这个功能可能用于一个在线测试或学习平台,它能根据时间(TestTime)和题号(Number)来加载...

    xe7原生json读取基础

    要读取JSON数据,首先需要将JSON文本转换为TJSONObject对象。这可以通过使用TJSONObject的构造函数完成,传入一个包含JSON文本的字符串。例如: ```delphi var JSONText: string; JSONObject: TJSONObject; begin...

    读取json文件定时抓取新数据.

    标题中的“读取json文件定时抓取新数据”是一个典型的Web应用功能,它涉及到两个主要技术:JSON数据处理和定时任务。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端交互。定时抓取...

    使用jQuery读取xml和json的案例代码

    `$(xml).find('item')`查找所有名为`item`的元素,并对每个元素提取`title`和`description`的值。 **读取JSON** 读取JSON数据,同样可以使用`$.ajax()`,只需将`dataType`参数设置为"json"。这里有一个简单的例子...

    遍历多级树状json获得父子节点值

    总之,遍历多级树状JSON是一个常见的编程挑战,通过理解和运用递归,我们可以有效地处理这类问题,获取我们需要的父子节点属性值。在实际开发中,这有助于我们解析和操作各种复杂的数据结构,实现功能丰富的应用程序...

    利用json读取JavaBean

    在示例中,使用`$.each()`遍历JSON数组,并构建一个表格来展示JavaBean的属性值。 5. 处理列表(List): 当需要处理包含多个JavaBean的列表时,可以创建一个ArrayList,并将JavaBean实例添加到其中。之后,使用`...

    PB读写JSON格式数据

    例如,你可以使用`JsonCreateObject()`函数创建一个空的JSON对象,然后使用`JsonSetProperty()`设置对象的属性,或者使用`JsonGetProperty()`获取属性值。对于数组,可以使用`JsonCreateArray()`创建,并通过`...

    WPF 导入JSON数据

    在Windows Presentation Foundation(WPF)应用开发中,有时我们需要处理来自JSON格式的数据,并将其导入到数据库中进行存储和处理。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其简洁和易于...

    b4a解析XML和JSON.rar

    这个例子展示了如何在B4A中读取XML元素的属性和文本,以及如何解析JSON对象和数组。理解并熟练运用这些方法,将使你在处理来自服务器的XML和JSON数据时更加得心应手。 在实际项目中,你可能需要从网络请求中获取XML...

    js获取json元素数量的方法

    获取JSON对象元素数量的关键在于遍历该对象的所有属性。下面通过一个具体的代码示例来讲解实现方法: ```javascript var berkeleyjson = {"plug1":"myslider", "plug2":"zonemenu", "plug3":"javascript"}; ...

    javascript读取json数组生成滚动分页

    在JavaScript编程中,处理大量数据时,为了...以上就是使用JavaScript读取JSON数组生成滚动分页的基本步骤和关键知识点。在实际开发中,可能还需要考虑错误处理、数据缓存、状态管理等问题,以实现更完善的分页功能。

    易语言教学 - json模块解析/获取文本 示例源码

    例如,你可以使用zyJson的`解析JSON文本`函数将JSON源码转化为易语言的表或集合,然后通过`获取JSON元素`等方法获取具体的数据。 2. yyJson模块: yyJson是另一个高效的JSON解析器,它的设计目标是快速且内存友好。...

    delphi读取JSON

    3. **读取JSON属性**:`TJSONObject`有一个`Values`字典,可以通过键值来获取对应的`TJSONValue`对象,然后转换为具体类型。 ```delphi var NameValue: TJSONString; begin NameValue := JSONObject.Values['name...

    任意自定义结构体Json配置文件读写

    xml由于属性和元素分开的形式,不适合直接转为c++定义的树状结构。所以最终选择了json。 要想用c++实现一个通用的json文件序列化和反序列化工具,反射是绕不开的。c++语言原生不支持反射,因此要通过一些编程技巧...

    Delphi XE7中解析JSON

    // 获取键和对应的JSON值 const Key = Pair.Key; const Value: TJSONValue = Pair.Value; // ... end; end else if JSONValue is TJSONArray then with TJSONArray(JSONValue) do begin for I := 0 to ...

    extjs读取解析后端json格式数据显示条形图

    在本案例中,我们将深入探讨如何使用ExtJS读取并解析后端返回的JSON格式数据,然后将这些数据呈现为动态的条形图,以实现吸引用户注意力的视觉效果。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据...

Global site tag (gtag.js) - Google Analytics