有时候需要用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/
相关推荐
具体操作中,`content`变量构建了一个字符串,包含了当前对象的所有属性值,并以逗号分隔,最后加上换行符。`$("#result").append(content);`这行代码将构建好的字符串追加到了页面上ID为"result"的元素内,实现了...
在这个场景中,我们将关注如何使用C#和Newtonsoft.Json库来高效地获取JSON对象中的指定值。 首先,Newtonsoft.Json是C#中最流行的JSON处理库,它提供了丰富的功能,如序列化、反序列化、查询和转换JSON等。要安装此...
**读取JSON文件** 1. **使用System.Text.Json** - `using System.Text.Json;` - `string jsonString = File.ReadAllText("path_to_file.json");` 读取文件内容为字符串。 - `JsonDocument doc = JsonDocument....
这个示例中,我们创建了一个`Person`类,然后在按钮事件中分别实现了读取JSON文件和写入JSON文件的功能。 总结,C# WinForm应用中读写JSON文件主要依赖于Newtonsoft.Json库。通过简单的序列化和反序列化操作,我们...
在这个示例中,我们看到一个使用jQuery和Ajax实现的功能,该功能根据特定条件从JSON文件中读取数据并将其显示在网页上。这个功能可能用于一个在线测试或学习平台,它能根据时间(TestTime)和题号(Number)来加载...
要读取JSON数据,首先需要将JSON文本转换为TJSONObject对象。这可以通过使用TJSONObject的构造函数完成,传入一个包含JSON文本的字符串。例如: ```delphi var JSONText: string; JSONObject: TJSONObject; begin...
标题中的“读取json文件定时抓取新数据”是一个典型的Web应用功能,它涉及到两个主要技术:JSON数据处理和定时任务。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于前后端交互。定时抓取...
`$(xml).find('item')`查找所有名为`item`的元素,并对每个元素提取`title`和`description`的值。 **读取JSON** 读取JSON数据,同样可以使用`$.ajax()`,只需将`dataType`参数设置为"json"。这里有一个简单的例子...
总之,遍历多级树状JSON是一个常见的编程挑战,通过理解和运用递归,我们可以有效地处理这类问题,获取我们需要的父子节点属性值。在实际开发中,这有助于我们解析和操作各种复杂的数据结构,实现功能丰富的应用程序...
在示例中,使用`$.each()`遍历JSON数组,并构建一个表格来展示JavaBean的属性值。 5. 处理列表(List): 当需要处理包含多个JavaBean的列表时,可以创建一个ArrayList,并将JavaBean实例添加到其中。之后,使用`...
这个例子展示了如何在B4A中读取XML元素的属性和文本,以及如何解析JSON对象和数组。理解并熟练运用这些方法,将使你在处理来自服务器的XML和JSON数据时更加得心应手。 在实际项目中,你可能需要从网络请求中获取XML...
获取JSON对象元素数量的关键在于遍历该对象的所有属性。下面通过一个具体的代码示例来讲解实现方法: ```javascript var berkeleyjson = {"plug1":"myslider", "plug2":"zonemenu", "plug3":"javascript"}; ...
在JavaScript编程中,处理大量数据时,为了...以上就是使用JavaScript读取JSON数组生成滚动分页的基本步骤和关键知识点。在实际开发中,可能还需要考虑错误处理、数据缓存、状态管理等问题,以实现更完善的分页功能。
3. **读取JSON属性**:`TJSONObject`有一个`Values`字典,可以通过键值来获取对应的`TJSONValue`对象,然后转换为具体类型。 ```delphi var NameValue: TJSONString; begin NameValue := JSONObject.Values['name...
例如,你可以使用`JsonCreateObject()`函数创建一个空的JSON对象,然后使用`JsonSetProperty()`设置对象的属性,或者使用`JsonGetProperty()`获取属性值。对于数组,可以使用`JsonCreateArray()`创建,并通过`...
在Windows Presentation Foundation(WPF)应用开发中,有时我们需要处理来自JSON格式的数据,并将其导入到数据库中进行存储和处理。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其简洁和易于...
xml由于属性和元素分开的形式,不适合直接转为c++定义的树状结构。所以最终选择了json。 要想用c++实现一个通用的json文件序列化和反序列化工具,反射是绕不开的。c++语言原生不支持反射,因此要通过一些编程技巧...
// 获取键和对应的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格式数据,然后将这些数据呈现为动态的条形图,以实现吸引用户注意力的视觉效果。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据...
由于其简洁、易于阅读和编写,同时机器也能高效地解析和生成,JSON成为了许多Web服务和应用程序首选的数据交互格式。然而,JSON本身并不保证对象属性的顺序,这意味着当你接收到一个JSON对象时,其属性可能以任意...