来源:http://bbs.csdn.net/topics/390611005 。
系统采集的JSON格式数据(s.json)如下:
{
“SUCCESS”: [
{
"MESSAGE": "IMEI Service List",
"LIST": {
"MOVISTAR SPAIN": {
"GROUPNAME": "MOVISTAR SPAIN",
"SERVICES": {
"3": {
"SERVICEID": 32,
"SERVICENAME": "MOVISTAR NOKIA INSTANTE",
"CREDIT": 4,
"TIME": "1-30 Minutes",
"INFO": "<p style=\"text-align: center;\">…… </p>",
"Requires.Network": "None",
"Requires.Mobile": "None",
"Requires.Provider": "None",
"Requires.PIN": "None",
"Requires.KBH": "None",
"Requires.MEP": "None",
"Requires.PRD": "None",
"Requires.Type": "None",
"Requires.Locks": "None",
"Requires.Reference": "None"
},
"8": {
"SERVICEID": 77,
"SERVICENAME": "MOVISTAR NOKIA 20 NCK",
"CREDIT": 12,
"TIME": "1-30 Minutes",
"INFO": "<p style=\"text-align: center;\">……</p>",
"Requires.Network": "None",
"Requires.Mobile": "None",
"Requires.Provider": "None",
"Requires.PIN": "None",
"Requires.KBH": "None",
"Requires.MEP": "None",
"Requires.PRD": "None",
"Requires.Type": "None",
"Requires.Locks": "None",
"Requires.Reference": "None"
}
}
},
"VODAFONE SPAIN": {
"GROUPNAME": "VODAFONE SPAIN",
"SERVICES": {
"5": {
"SERVICEID": 50,
"SERVICENAME": "VODAFONE NOKIA BB5 SL3",
"CREDIT": 5,
"TIME": "1-60 Minutes",
"INFO": "<p style=\"text-align: center;\">……</p>",
"Requires.Network": "None",
"Requires.Mobile": "None",
"Requires.Provider": "None",
"Requires.PIN": "None",
"Requires.KBH": "None",
"Requires.MEP": "None",
"Requires.PRD": "None",
"Requires.Type": "None",
"Requires.Locks": "None",
"Requires.Reference": "None"
},
"10": {
"SERVICEID": 95,
"SERVICENAME": "VODAFONE SONY&;SONY ERIC(RAPIDO)",
"CREDIT": 16,
"TIME": "1-24 Hours",
"INFO": "<p style=\"text-align: center;\">……</p>",
"Requires.Network": "None",
"Requires.Mobile": "None",
"Requires.Provider": "None",
"Requires.PIN": "None",
"Requires.KBH": "None",
"Requires.MEP": "None",
"Requires.PRD": "None",
"Requires.Type": "None",
"Requires.Locks": "None",
"Requires.Reference": "None"
}
}
}
}
}
],
“apiversion”: “2.0.0″
}
现需要按照JSON数据内容,将相应节点下的属性值更新到数据库的对应表中,需要更新的2张表如下:
Create table [dbo].[Groups]
(
[ID] [int] IDENTITY(1,1) NOT NULL, –id
[Groupname] [nvarchar] (50) not null default(”), –名称
[groupid] [int] not null default(0),
CONSTRAINT [PK_Groups_id] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
CREATE TABLE [dbo].[Services](
[id] [int] IDENTITY(1,1) NOT NULL, –id
[Serviceid] [int] not null default(0),
[Servicename] [nvarchar] (50) not null default(”),
[groupid] [int] not null default(0),
[Credit] [decimal] not null default(0.00),
[Time] [nvarchar] (50) not null default(”),
[INFO] [nvarchar] (3000) not null default(”),
[Network] [nvarchar] (100) not null default(‘none’),
[Mobile] [nvarchar] (100) not null default(‘none’),
[Provider] [nvarchar] (100) not null default(‘none’),
[PIN] [nvarchar] (100) not null default(‘none’),
[KBH] [nvarchar] (100) not null default(‘none’),
[MEP] [nvarchar] (100) not null default(‘none’),
[PRD] [nvarchar] (100) not null default(‘none’),
[Type] [nvarchar] (100) not null default(‘none’),
[Locks] [nvarchar] (100) not null default(‘none’),
[Reference] [nvarchar] (100) not null default(‘none’),
[isstatus] [nvarchar] (1) not null default(’0′),
[remark] [nvarchar] (255) not null default(”),
[Pricingid] [int] not null default(0),
CONSTRAINT [PK_Services_id] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
其中SERVICES下属性名即为groupid,如3,5,8,10,剩余字段与属性名一一对应。由于LIST和SERVICES下的属性名不固定,给解析带来了难度。区别于一般高级语言,集算器支持动态数据结构和集合运算,实现并不困难,脚本如下:
A1:以字符串读入JSON文件内容,并使用import@j()将字符串转为行列式带有层次的序表。
A2-A3:根据两个目标表,创建空序表,用于存储解析结果后一次更新到数据库。
A4-B4:循环序表,在B4中计算LIST下节点数量。
B5-C6:循环获取LIST节点内容,并在C6中计算SERVICES下节点数量。
C7-D8:循环获取SERVICES节点下属性名和属性值。
D9-D10:将解析后结果分别写回到A2A3中的空序表中。
A11:以groupid为主键,将A2内容更新到groups表中。
A12:以Serviceid为主键,将A3内容更新到services表中。
相关推荐
标题中的“VB6解析json类库”指的是一个用于Visual Basic 6(VB6)环境的JSON解析工具。JSON,全称JavaScript Object Notation,是一种轻量级的数据交换格式,广泛应用于Web服务和应用程序之间的数据传输。这个类库...
C++作为一款强大的编程语言,有许多库可以用来解析JSON,其中之一就是我们这里提到的开源JSON解析器。这个解析器是用C++编写的,其源码提供了深入理解JSON解析过程的宝贵机会。 首先,我们要明白JSON的基本结构。...
本教程将详细讲解如何在Idea中使用Java解析JSON文件,并将数据有效地导入到MySQL数据库。 首先,我们需要理解JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器...
在文件"JsonParse"中,可能包含了使用C++解析JSON字符串的示例代码,包括如何导入库、创建JSON对象、解析字符串、访问数据以及处理异常情况。通过学习和理解这部分代码,你可以熟练地在C++项目中处理JSON数据。
总结来说,使用Json.NET库和Dictionary在C#中解析JSON是一种灵活且实用的方法,尤其适用于处理动态或未知结构的JSON数据。只需注意类型转换以及处理可能的异常,如找不到Key或类型不匹配。通过这种方式,你可以轻松...
本主题聚焦于“Android Studio解析JSON对象”,这是一个非常关键且实用的技能,因为JSON作为一种轻量级的数据交换格式,广泛应用于网络通信和数据存储。JSON对象可以方便地表示各种复杂的数据结构,包括数组、键值...
3. **解析JSON字符串**:通过`JSONObject.fromObject()`或`JSONArray.fromObject()`方法将JSON格式的字符串转换为Java对象。 4. **序列化Java对象**:使用`JSONObject.toJSONString()`或`JSONArray.toJSONString()`...
3. **解析JSON**:使用cppJson库提供的函数将JSON字符串转换为JSON对象。cppJson库的`Json::parse()`方法可以完成这个任务,例如: ```cpp Json::Value root; std::ifstream file("json_data.json"); file >> ...
3. **解析JSON**:使用库提供的方法将JSON字符串解析为Java对象。 4. **访问数据**:通过Java对象的属性访问解析后的数据。 5. **序列化**:如果需要将Java对象转换回JSON,同样使用库的方法进行操作。 在开发过程...
在本文中,我们将深入探讨如何在Flex 4.5中使用as3corelib库来解析JSON数据。as3corelib是一个强大的ActionScript 3库,它包含了一系列实用工具类,其中一个重要的功能就是处理JSON(JavaScript Object Notation)...
示例代码通常包括了导入库、创建JSON对象、解析JSON字符串以及如何在Flex组件中显示或操作这些数据的步骤。 “Lib”目录则可能包含了SWC库文件本身。在Flex项目中,开发者可以通过将这个SWC文件添加到类路径来引入...
在Go的标准库`encoding/json`中,解析JSON数据通常涉及两个主要方法:`json.Unmarshal()` 和 `json.NewDecoder().Decode()`. 这些方法在处理大型JSON文档时可能会比较慢,因为它们提供了完整的错误检查和类型安全。...
在Android中,我们通常使用Google提供的Gson库或者org.json库来解析JSON数据。Gson库能够直接将JSON字符串转化为Java对象,反之亦然,非常方便。而org.json库提供了JSONObject和JSONArray类,可以手动解析和构建JSON...
JsonCpp是一个开源的C++库,它提供了处理JSON数据结构的功能,可以用于解析JSON字符串或文件,生成JSON数据等操作。在Windows平台下,为了能够使用JsonCpp,首先需要下载该库的源代码。JsonCpp的源码可以在其官方...
2. **解析JSON**:使用`cJSON_Parse()`函数解析JSON字符串,返回一个`cJSON`结构体指针,表示JSON的根对象。 3. **遍历JSON对象**:通过`cJSON_GetObjectItem()`函数获取JSON对象的子项,如果是数组,可以用`cJSON_...
3. 解析JSON字符串:使用`org.json`库的`JSONObject`或`JSONArray`类解析JSON内容。 - 对于对象(Object): ```java JSONObject jsonObject = new JSONObject(jsonString); String name = jsonObject.getString...
1. 解析JSON字符串:将JSON格式的文本转换为可操作的数据结构,如JavaScript对象或Python字典。 2. 序列化对象:将JavaScript对象或Python字典等数据结构转换成JSON格式的字符串,以便在网络上传输。 3. 验证JSON:...
解析JSON意味着将JSON字符串转化为C#对象。使用`com.force.json v1.0`库,你可能需要以下步骤: 1. 引入库:在项目中添加对`com.force.json v1.0`的引用。 2. 创建C#类模型:根据JSON结构定义对应的C#类。例如,...
2. 解析JSON字符串:使用`JSONObject`或`JSONArray`类来解析JSON。例如,对于一个JSON对象,可以使用`new JSONObject(jsonString)`创建一个对象实例;对于JSON数组,使用`new JSONArray(jsonString)`。 3. 访问数据...