简单json实例
wps 编写解析json格式的数据案例
wps 编写解析json格式的数据案例在数据处理和解析中,json 格式的数据成为了一种常见的数据格式。
它具有数据结构清晰、易于阅读和编写的特点,被广泛应用在 Web 开发、移动应用程序开发和数据交换等领域。
wps 作为一款功能强大的办公软件,也提供了对 json 数据进行解析和处理的功能,本文将通过一个案例,详细介绍如何利用 wps 对 json 格式的数据进行解析和处理。
1. 准备 json 数据我们准备一段简单的 json 数据作为例子,例如:```json{"name": "张三","age": 25,"gender": "男","address": {"city": "北京","street": "朝阳区"},"skills": ["Java", "Python", "C++"]}上面的 json 数据包含了一个人的基本信息,包括尊称、芳龄、性别、位置区域和技能等内容。
2. 创建wps文档打开 wps 文档,在空白处输入上面准备的 json 数据。
3. 解析 json 数据在 wps 中,可以利用内置的函数对 json 数据进行解析。
在本例中,我们可以使用 wps 中的 JSON.GET 函数来获取 json 数据中指定键对应的值,具体步骤如下:3.1 我们可以使用JSON.GET 函数获取尊称、芳龄和性别等基本信息,比如在单元格 A1 中输入以下公式:```=JSON.GET(A$1,"$.name")=JSON.GET(A$1,"$.age")=JSON.GET(A$1,"$.gender")```这样,单元格 A1 中就会显示 json 数据中相应键对应的值。
Java解析json报文实例解析
Java解析json报⽂实例解析这篇⽂章主要介绍了Java解析json报⽂实例解析,⽂中通过⽰例代码介绍的⾮常详细,对⼤家的学习或者⼯作具有⼀定的参考学习价值,需要的朋友可以参考下json报⽂如下:{"code": 0,"data": {"city": {"cityId": 284609,"counname": "中国","name": "东城区","pname": "北京市"},"liveIndex": {"2016-09-01": [{"day": "2016-09-01","desc": "建议⽤露质⾯霜打底,⽔质⽆油粉底霜,透明粉饼,粉质胭脂。
","name": "化妆指数","status": "控油"},{"day": "2016-09-01","desc": "感冒容易发⽣,少去⼈群密集的场所有利于降低感冒的⼏率。
","name": "感冒指数","status": "易发"},{"day": "2016-09-01","desc": "洗车后,可保持2天车辆清洁,⽐较适宜洗车。
","name": "洗车指数","status": "较适宜"},{"day": "2016-09-01","desc": "易感⼈群应适当减少室外活动。
get方法传递json
get方法传递json使用get方法传递JSON在进行网络通信时,常常需要将数据以JSON的形式传递给服务器或从服务器获取JSON数据。
而使用get方法传递JSON数据是一种常见的方式。
本文将介绍如何使用get方法传递JSON数据,并探讨其优势与应用场景。
一、什么是get方法传递JSON数据在HTTP协议中,GET是一种常见的请求方法,用于请求指定的资源。
而在传递数据时,可以将数据以JSON的形式作为参数传递给服务器。
这种方式既简单又方便,适用于传递小量数据的场景。
二、get方法传递JSON的优势1. 简单易用:get方法传递JSON数据的操作非常简单,只需将JSON数据作为参数拼接在URL后面即可。
不需要额外的请求头或请求体,减少了请求的复杂度。
2. 可读性强:JSON数据以键值对的形式传递,参数名和参数值之间使用等号连接。
这种传递方式可读性较强,方便开发人员阅读和理解。
3. 高效性能:由于get方法的特性,请求的数据会直接附在URL后面,这样可以减少请求的大小,提高请求的效率。
三、get方法传递JSON的应用场景1. 传递查询参数:当需要传递查询参数时,可以将参数以JSON的形式传递给服务器。
例如,请求某个商品的详细信息,可以将商品ID以JSON数据的形式传递给服务器。
2. 传递配置信息:在一些应用中,可能需要传递一些配置信息给服务器。
例如,传递用户的偏好设置、系统的配置信息等。
这些配置信息可以以JSON的形式传递给服务器,方便进行处理和存储。
3. 传递数据更新:当需要更新服务器上的数据时,可以将更新的数据以JSON的形式传递给服务器。
例如,更新用户的个人信息、发布新的文章等。
四、get方法传递JSON的实例下面通过一个实例来演示如何使用get方法传递JSON数据。
假设有一个网站,需要根据用户输入的关键字进行搜索。
用户输入的关键字可以以JSON的形式传递给服务器。
例如,用户输入关键字为{"keyword": "apple"},则可以将关键字作为参数拼接在URL 后面,形成如下请求:GET /search?keyword=apple HTTP/1.1服务器接收到这个请求后,可以解析URL中的参数,获取到用户输入的关键字,然后进行搜索操作。
json解析例子
下面这个是自己修改别人的小例子,主要是加一些注释和讲解,这个例子主要是使用android进行json解析。
1 单数据{'singer':{'id':01,'name':'tom','gender':'男'}}2 多个数据{"singers":[3 {'id':02,'name':'tom','gender':'男'},4 {'id':03,'name':'jerry,'gender':'男'},5 {'id':04,'name':'jim,'gender':'男'},6 {'id':05,'name':'lily,'gender':'女'}]}下面的类主要是解析单个数据parseJson()和多个数据的方法parseJsonMulti():查看源码打印?01 public class JsonActivity extends Activity {02 /** Called when the activity is first created. */03 private TextView tvJson;04 private Button btnJson;05 private Button btnJsonMulti;06 @Override07 public void onCreate(Bundle savedInstanceState) {08 super.onCreate(savedInstanceState);09 setContentView(yout.main);10 tvJson = (TextView) this.findViewById(Json);11 btnJson = (Button) this.findViewById(R.id.btnJson);12 btnJsonMulti = (Button) this.findViewById(R.id.btnJsonMulti);13 btnJson.setOnClickListener(new View.OnClickListener() {14 @Override15 public void onClick(View v) {16 // url17 // String strUrl = "http://10.158.166.110:8080/AndroidServer/JsonServlet";18 String strUrl = ServerPageUtil.getStrUrl(UrlsOfServer.JSON_SINGER);19 //获得返回的Json字符串20 String strResult = connServerForResult(strUrl);21 //解析Json字符串22 parseJson(strResult);23 }24 });25 btnJsonMulti.setOnClickListener(new View.OnClickListener() {26 @Override27 public void onClick(View v) {28 String strUrl = ServerPageUtil.getStrUrl(UrlsOfServer.JSON_SINGERS);29 String strResult = connServerForResult(strUrl);30 //获得多个Singer31 parseJsonMulti(strResult);32 }33 });34 }35 private String connServerForResult(String strUrl) {36 // HttpGet对象37 HttpGet httpRequest = new HttpGet(strUrl);38 String strResult = "";39 try {40 // HttpClient对象41 HttpClient httpClient = new DefaultHttpClient();42 // 获得HttpResponse对象43 HttpResponse httpResponse = httpClient.execute(httpRequest);44 if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {45 // 取得返回的数据46 strResult = EntityUtils.toString(httpResponse.getEntity());47 }48 } catch (ClientProtocolException e) {49 tvJson.setText("protocol error");50 e.printStackTrace();51 } catch (IOException e) {52 tvJson.setText("IO error");53 e.printStackTrace();54 }55 return strResult;56 }57 // 普通Json数据解析58 private void parseJson(String strResult) {59 try {60 JSONObject jsonObj = new JSONObject(strResult).getJSONObject("singer");61 int id = jsonObj.getInt("id");62 String name = jsonObj.getString("name");63 String gender = jsonObj.getString("gender");64 tvJson.setText("ID号"+id + ", 姓名:" + name + ",性别:" + gender);65 } catch (JSONException e) {66 System.out.println("Json parse error");67 e.printStackTrace();68 }69 }70 //解析多个数据的Json71 private void parseJsonMulti(String strResult) {72 try {73 JSONArray jsonObjs = new JSONObject(strResult).getJSONArray("singers");74 String s = "";75 for(int i = 0; i < jsonObjs.length() ; i++){76 JSONObject jsonObj = ((JSONObject)jsonObjs.opt(i))77 .getJSONObject("singer");78 int id = jsonObj.getInt("id");79 String name = jsonObj.getString("name");80 String gender = jsonObj.getString("gender");81 s += "ID号"+id + ", 姓名:" + name + ",性别:" + gender+ "\n" ;82 }83 tvJson.setText(s);84 } catch (JSONException e) {85 System.out.println("Jsons parse error !");86 e.printStackTrace();87 }88 }89 }。
json_overlaps sql 案例
json_overlaps sql 案例JSON_OVERLAPS是一个SQL函数,用于比较两个JSONB数据类型的值是否有重叠。
JSONB是PostgreSQL中的一种数据类型,用于存储和查询JSON数据。
JSON_OVERLAPS函数接受两个参数,分别是要比较的两个JSONB值,如果两个JSONB值有重叠部分,则返回true,否则返回false。
下面是一些使用JSON_OVERLAPS函数的案例:1. 案例一:比较两个JSONB对象是否有重叠的键```SELECT json_overlaps('{"name": "John", "age": 30}'::jsonb, '{"age": 30, "address": "123 Street"}'::jsonb);```输出:true解释:两个JSONB对象有相同的age键,因此有重叠的部分。
2. 案例二:比较两个JSONB数组是否有重叠的元素```SELECT json_overlaps('[1, 2, 3]'::jsonb, '[3, 4, 5]'::jsonb);```输出:true解释:两个JSONB数组有相同的元素3,因此有重叠的部分。
3. 案例三:比较两个JSONB对象是否有重叠的值```SELECT json_overlaps('{"name": "John", "age": 30}'::jsonb, '{"name": "John", "age": 40}'::jsonb);```输出:false解释:两个JSONB对象的值完全相同,没有重叠的部分。
使用JSON进行网络数据交换传输详细
使用JSON进行网络数据交换传输详细JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前端与后端的网络数据传输。
它以键值对的形式组织数据,并以简洁易读的方式表示复杂的数据结构。
在网络通信中,JSON可以作为通过HTTP请求传输数据的一种格式,而JSON解析器可以将接收到的JSON文本转换为对应的数据结构。
本文将详细介绍使用JSON进行网络数据交换传输的过程。
首先,需要明确网络数据交换传输的两个角色:发送方和接收方。
发送方负责将需要传输的数据封装成JSON格式,然后通过网络发送给接收方。
接收方接收到JSON数据后,通过JSON解析器将其解析成对应的数据结构,从而能够对数据进行处理。
发送方的工作流程如下:1.确定需要传输的数据:发送方首先需要明确想要传输的数据,例如用户的姓名、年龄等。
2. 组织数据成JSON格式:将需要传输的数据按照键值对的方式组织成JSON格式。
例如,{"name": "Tom", "age": 20} 是一个包含姓名和年龄的JSON对象。
3.发送JSON数据:使用网络通信协议(如HTTP)将JSON数据发送给接收方。
可以使用编程语言提供的网络通信库来实现。
接收方的工作流程如下:1.接收JSON数据:接收方通过网络接收到发送方发送的JSON数据。
2.解析JSON数据:使用JSON解析器将接收到的JSON数据解析成对应的数据结构。
不同编程语言提供了各自的JSON解析器,可以根据实际需求选择合适的解析器。
3.处理数据:接收方可以根据需要对解析后的数据进行处理,例如存储到数据库、展示在前端界面等。
JSON的优势及其适用场景:1.简洁易读:JSON使用键值对的格式组织数据,使其更易于理解和阅读。
2.跨平台、跨语言:JSON是一种独立于编程语言和平台的数据格式,可以在不同的系统和编程语言中进行数据交换。
json数据 例子
json数据例子JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据传输。
它以键值对的形式组织数据,具有易读、易写的特点,同时也易于解析和生成。
下面是一些关于JSON 数据的示例,以帮助您更好地理解和使用JSON。
1. 简单的JSON对象示例:{"name": "张三","age": 25,"gender": "男"}这是一个包含名称、年龄和性别属性的JSON对象示例。
2. JSON数组示例:[{"name": "张三","age": 25,"gender": "男"},{"name": "李四","age": 30,"gender": "女"},{"name": "王五","age": 28,"gender": "男"}]这是一个包含多个JSON对象的数组示例,每个对象都表示一个人的信息。
3. 嵌套JSON对象示例:{"name": "张三","age": 25,"gender": "男","address": {"province": "北京","city": "北京","street": "朝阳区"}}这是一个包含嵌套JSON对象的示例,其中address属性又包含了province、city和street属性。
redis的操作json对象实例
redis的操作json对象实例1.redis存储是:key value格式的数据,其中key都是字符串,value有5种不同的数据结构 value的数据结构: 1.字符串类型:string 2.哈希类型 hash :map格式 3.列表类型 list:linkedlist格式。
⽀持重复元素 4.集合类型 set:不允许重复元素 5.有序集合类型 sortset:不允许重复元素,且元素有顺序2.字符串类型 string 1.存储:set key value 2.获取:get key 3.删除:del key3.哈希类型 hash: 1.存储:hset key field value 2.获取:hget key field 3.删除:hdel key fieldjeids的操作string数据结构操作//1.获取连接Jedis jedis = new Jedis("localhost", 6379);//2.操//存储jedis.set("username","zhangsan");//获取String username = jedis.get("username");System.out.println(username);//可以使⽤setx⽅法存储指定国旗时间的key valuejedis.setex("active",20,"hehe");//将active hehe键值对存⼊redis,并且20秒后⾃动删除键值对//3.关闭连接jedis.close();hash数据结构操作//1.获取连接Jedis jedis = new Jedis("localhost", 6379);//2.操作//存储jedis.hset("user","name","lisi");jedis.hset("user","age","23");jedis.hset("user","gender","male");//获取String name = jedis.hget("user", "name");System.out.println(name);//获取hash的所有的map的数据Map<String, String> user = jedis.hgetAll("user");Set<String> set = user.keySet();for (String key : set) {String value = user.get(key);System.out.println(key +":"+value);}//3.关闭连接jedis.close();list数据结构操作//1.获取连接Jedis jedis = new Jedis("localhost", 6379);//2.操作//存储jedis.lpush("mylist","a","b","c");//从左边存 cbajedis.rpush("mylist","a","b","c");//从右边存 abc//获取List<String> mylist = jedis.lrange("mylist", 0, -1); System.out.println(mylist);//list弹出String element = jedis.lpop("mylist");System.out.println(element);String element1 = jedis.rpop("mylist");System.out.println(element1);List<String> mylist2 = jedis.lrange("mylist", 0, -1); System.out.println(mylist2);//3.关闭连接jedis.close();set和sortedset数据结构操作//1.获取连接Jedis jedis = new Jedis("localhost", 6379);//2.操作//存储数字的作⽤是输出按从⼩到⼤排列jedis.zadd("mysorted",3,"亚瑟");jedis.zadd("mysorted",30,"后羿");jedis.zadd("mysorted",25,"孙悟空");//获取Set<String> mysorted = jedis.zrange("mysorted", 0, -1); System.out.println(mysorted);//3.关闭连接jedis.close();jedis连接池:使⽤:1.创建jedispool连接池对象 2.调⽤⽅法getResource()⽅法获取jedis连接//创建配置对象JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(50);//最⼤活动对象config.setMaxIdle(10);//最⼤保持的连接数//1.创建对象JedisPool jedisPool = new JedisPool();//2.获取连接Jedis jedis = jedisPool.getResource();//3.使⽤jedis.set("heheh","hahah");//3.关闭连接jedis.close();案例:1.提供⼀个页⾯,是⼀个下拉框,其中是省份2.页⾯加载完成,发送ajax请求,加载省份优化:使⽤redis缓存⼀些不经常发⽣变化的数据Dao部分dao接⼝类package cn.itcast.dao;import cn.itcast.domain.Province;import java.util.List;public interface ProvinceDao {public List<Province> findAll();}dao实现类package cn.itcast.dao.impl;import cn.itcast.dao.ProvinceDao;import cn.itcast.domain.Province;import cn.itcast.util.JDBCUtils;import org.springframework.jdbc.core.BeanPropertyRowMapper;import org.springframework.jdbc.core.JdbcTemplate;import java.util.List;public class ProvinceDaoImpl implements ProvinceDao {//1.声明成员变量private JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());@Overridepublic List<Province> findAll() {//2.定义sqlString sql = "select * from province";//3.执⾏sqlList<Province> list = template.query(sql, new BeanPropertyRowMapper<Province>(Province.class)); return list;}}Service部分service接⼝类package cn.itcast.service;import cn.itcast.domain.Province;import java.util.List;public interface ProvinceService {public List<Province> findAll();public String findAllJson();}service实现类package cn.itcast.service.impl;import cn.itcast.dao.ProvinceDao;import cn.itcast.dao.impl.ProvinceDaoImpl;import cn.itcast.domain.Province;import cn.itcast.service.ProvinceService;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.ObjectMapper;import org.omg.CORBA.PRIVATE_MEMBER;import redis.clients.jedis.Jedis;import java.util.List;public class ProvinceServiceImpl implements ProvinceService {//声明daoprivate ProvinceDao dao = new ProvinceDaoImpl();@Overridepublic List<Province> findAll() {return dao.findAll();}@Overridepublic String findAllJson() {//先从redis查询数据//1.获取连接Jedis jedis = new Jedis("localhost", 6379);//2.操作//获取String province_json = jedis.get("province");//判断province_json是否是nullif (province_json == null || province_json.length() == 0){//redis没数据,从数据库查询System.out.println("redis没有数据,查询数据库。
typescript class转jsonobject
typescript class转jsonobject
在TypeScript中,您可以使用JSON模块来将类实例转换为JSON 对象。
下面是一个简单的示例,说明如何实现这一转换:```typescript
class Person {
constructor(public name: string, public age: number) {} }
// 创建一个Person类实例
let person = new Person("Alice", 25);
// 使用JSON模块将实例转换为JSON对象
let jsonObject = JSON.stringify(person);
console.log(jsonObject); // 输出:{"name":"Alice","age":25}
```
在这个例子中,我们创建了一个名为`Person`的类,它具有`name`和`age`两个属性。
然后,我们创建了一个`Person`类的实例`person`,并使用`JSON.stringify()`方法将其转换为JSON对象。
最后,我们将JSON 对象打印到控制台上。
请注意,这种方法仅适用于将类的实例转换为JSON对象。
如果您需要将类本身(而不是实例)转换为JSON对象,则可以使用TypeScript的`tsconfig.json`文件中的
`compilerOptions.emitDecoratorMetadata`选项,并结合
`reflect-metadata`库来提取类的元数据并将其转换为JSON对象。
geojson multipolygon数据示例
geojson multipolygon数据示例如何使用GeoJSON的Multipolygon数据示例。
GeoJSON是一种用于表示地理空间数据的开放标准格式。
它使用JSON (JavaScript Object Notation)作为数据交换的格式,并包含几何、属性和可选的CRS(坐标参照系统)信息。
其中,Multipolygon是GeoJSON 中的一个关键要素,用于表示多边形的集合,比如地图上的行政边界、湖泊、国家边界等。
在本文中,我们将使用一个GeoJSON Multipolygon数据示例来介绍如何使用它。
假设我们有一个GeoJSON文件,其中包含美国各州的边界信息。
首先,我们需要了解GeoJSON Multipolygon数据结构的基本元素。
Multipolygon数据由一个包含多个多边形的数组组成。
每个多边形又由一个包含多个线性环的数组表示。
线性环是一个有序的点数组,第一个点和最后一个点是相同的,表示多边形的闭合。
此外,每个多边形可以有一个或多个内部环,内部环的顺时针方向与外部环的逆时针方向相反。
接下来,我们可以使用任何支持GeoJSON格式的地图编辑器或代码编辑器打开我们的GeoJSON文件。
假设我们使用代码编辑器来处理GeoJSON数据。
首先,我们需要加载GeoJSON数据到代码编辑器中。
在代码编辑器中打开或创建一个新的文件,并将GeoJSON数据复制粘贴到该文件中。
然后,我们可以将文件保存为一个带有`.json`扩展名的文件,以便浏览器或其他地图应用程序可以正确识别该文件的类型。
接下来,我们需要读取和解析这个GeoJSON文件。
在大多数编程语言中,都有一些库或类可以帮助我们读取和解析JSON文件。
我们可以使用这些工具将GeoJSON文件转换成我们的程序可以处理和操作的数据对象。
例如,对于JavaScript,我们可以使用`JSON.parse()`函数将JSON字符串解析为JavaScript对象。
json基础语法
json基础语法JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据传输及存储。
它以简洁的格式描述了数据对象,易于阅读和编写,并且易于解析和生成。
本文将介绍JSON的基础语法,包括对象、数组、键值对等。
1. 对象(Object)JSON中的对象表示一组无序的键值对,使用大括号{}括起来。
每个键值对之间使用英文逗号分隔。
例如:```{"name": "张三","age": 20,"gender": "男"}```2. 数组(Array)JSON中的数组表示一组有序的值,使用中括号[]括起来。
每个值之间使用英文逗号分隔。
例如:```[1, 2, 3, 4, 5]```数组中可以包含不同类型的值,例如字符串、数字、布尔值、对象等。
3. 键值对(Key-Value)JSON中的键值对表示一个属性和其对应的值,使用冒号:分隔。
例如:```"name": "张三"```键是一个字符串,值可以是字符串、数字、布尔值、对象或数组。
4. 字符串(String)JSON中的字符串表示一段文本,使用双引号""括起来。
例如:```"name": "张三"```字符串可以包含任意字符,包括特殊字符和Unicode字符。
5. 数字(Number)JSON中的数字表示一个数值,可以是整数或浮点数。
例如:```"age": 20```数字可以是正数、负数、科学计数法表示的数值。
6. 布尔值(Boolean)JSON中的布尔值表示真或假,可以是true或false。
例如:```"isStudent": true```7. 空值(null)JSON中的空值表示一个空对象或空数组,使用null表示。
jackson的简单实用实例(json)
jackson的简单实⽤实例(json)⼀个json格式的字符串⽐如:{"status":10001,"code":"HDkGzI","pubkey":"DBCEEECFD3F6808C85254B1","servertime":1475741518},在java中对应的字符串为:"{\"status\":10001,\"code\":\"HDkGzI\",\"pubkey\":\"DBCEEECFD3F6808C85254B1\",\"servertime\":1475741518}"格式化后:{"status": 10001,"code": "HDkGzI","pubkey": "DBCEEECFD3F6808C85254B1","servertime": 1475741518}有的时候我们想在这个json格式字符串中去⼀项,⽐如想去出pubkey这⼀项,那么结合jackson这个⼯具就可以很⽅便地解决这个问题。
代码如下:1package com.test.javaAPI.json;23import java.io.IOException;4import java.util.Map;56import org.codehaus.jackson.JsonParseException;7import org.codehaus.jackson.map.JsonMappingException;8import org.codehaus.jackson.map.ObjectMapper;9import org.junit.Test;1011import com.sun.xml.internal.messaging.saaj.util.ByteOutputStream;1213public class JacksonTest2 {14public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException {15 String str = new JacksonTest2().removeJsonObjByKey(UtilJackson.jsonStr4, UtilJackson.jsonStr4_KEY1);16 System.out.println(str);17 }1819/**20 * 根据键除去json格式字符串中的某⼀个键值对21 *22 * @param jsonStr23 * @param key24 * @return25 * @throws IOException26 * @throws JsonMappingException27 * @throws JsonParseException28*/29public String removeJsonObjByKey(String jsonStr, String key)30throws JsonParseException, JsonMappingException, IOException {31 ObjectMapper objMap = new ObjectMapper();32// 1 把json格式字符串转换为 java.util.Map33 Map map = objMap.readValue(jsonStr, Map.class);34// 2 删除map中的对应key的项⽬35 map.remove(key);36// 准备字节流,接收ObjectMapper中写出的输出流37 ByteOutputStream bops = new ByteOutputStream();38// 3 把map重新转换为json格式字符串39 objMap.writeValue(bops, map);40if (!"".equals(bops)) {41return bops.toString();42 }43return "";44 }4546/**47 * ⽅法的作⽤:去除⼀个json格式字符串的某⼀个key 删除这个json字符串⾥的这个key对应的对象该⽅法与框架中的 String48 * cn.sinobest.framework.web.his.JsonManager.removeDataPackage(String49 * jsonStr) 这个⽅法的功能⼀致50 *51 * @param jsonKey52 * @return53 * @throws JsonParseException54 * @throws JsonMappingException55 * @throws IOException56*/57 @Test58public String removeDataPackage(String jsonKey) throws JsonParseException, JsonMappingException, IOException {59 ObjectMapper objMap = new ObjectMapper();60 Map map = objMap.readValue(UtilJackson.jsonStr_HN, Map.class);61// map.remove("DataPackage");62 map.remove(jsonKey);63 ByteOutputStream bops = new ByteOutputStream();64 objMap.writeValue(bops, map);65 System.out.println(bops.toString());66return null;67 }6869 }其中main⽅法字符串分别为:1public static String jsonStr4 = "{\"verified\":false,\"name\":{\"last\":\"Hankcs\",\"first\":\"Joe\"},\"userImage\":\"Rm9vYmFyIQ==\",\"gender\":\"MALE\"}"; 2public static String jsonStr4_KEY1 = "verified";运⾏后的结果为: {"name":{"last":"Hankcs","first":"Joe"},"userImage":"Rm9vYmFyIQ==","gender":"MALE"},⽽原来的字符串jsonStr4为:{"verified":false,"name":{"last":"Hankcs","first":"Joe"},"userImage":"Rm9vYmFyIQ==","gender":"MALE"}。
PowerQuery技巧之XML与JSON数据获取
我们可以发现,其实每一层,都是由XML文件组成的。 下面我们给出这样一段XML代码。
选择”CD"表点编辑进入处理。(下面的style是样式表,我们不需要关注。)
很高级,直接全部获取了。 下面我们直接处理我们的需求,根据国家以及年代汇总歌手的数量。
我们最辣手的是处理一下年代,其实很简单,从“YEAR”左边第2个位置开始取一位即可,加上后缀“0年代”。
效果如下:
最后进行“分组依据",根据”国家“——”年代“进行计数,对”年代“进行”透视列“操作。
首先扫盲:
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript的一个子集;
XML(Extensible Markup Language)即可扩展标记语言,Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结
构化文档信息的有力工具。
<!-- Edited by XMLSpy?? --> <breakfast_menu> <style type="text/css"/> <food> <name>Belgian Waffles</name> <price>$5.95</price> <description> Two of our famous Belgian Waffles with plenty of real maple syrup </description> <calories>650</calories> </food> <food> <name>Strawberry Belgian Waffles</name> <price>$7.95</price> <description> Light Belgian waffles covered with strawberries and whipped cream </description> <calories>900</calories> </food> <food> <name>Berry-Berry Belgian Waffles</name> <price>$8.95</price> <description> Light Belgian waffles covered with an assortment of fresh berries and whipped cream </description> <calories>900</calories> </food> <food> <name>French Toast</name> <price>$4.50</price> <description> Thick slices made from our homemade sourdough bread </description> <calories>600</calories> </food> <food> <name>Homestyle Breakfast</name> <price>$6.95</price> <description> Two eggs, bacon or sausage, toast, and our ever-popular hash browns </description> <calories>950</calories> </food> </breakfast_menu>
c#处理3种json数据的实例
c#处理3种json数据的实例⽹络中数据传输经常是xml或者json,现在做的⼀个项⽬之前调其他系统接⼝都是返回的xml格式,刚刚遇到⼀个返回json格式数据的接⼝,通过例⼦由易到难总结⼀下处理过程,希望能帮到和我⼀样开始不会的朋友。
⼀、C#处理简单json数据json数据:复制代码代码如下:{"result":"0","res_info":"ok","queryorder_info":"info"}我这⾥是以jsonmy1.txt⽂件的形式保存在d盘json⽂件夹下。
构造对象:复制代码代码如下:public struct ToJsonMy{public string result { get; set; } //属性的名字,必须与json格式字符串中的"key"值⼀样。
public string res_info { get; set; }public string queryorder_info { get; set; }}转换过程:复制代码代码如下:public static void JsonMy(){string json = Jsonstr("D:\\json\\jsonmy1.txt");//Jsonstr函数读取json数据的⽂本txt JavaScriptSerializer js = new JavaScriptSerializer(); //实例化⼀个能够序列化数据的类ToJsonMy list = js.Deserialize<ToJsonMy>(json); //将json数据转化为对象类型并赋值给liststring result = list.result; string res_info = list.res_info;string queryorder_info = list.res_info;}⼆、C#处理包含对象的json数据json数据:jsonmy2.txt复制代码代码如下:{"result":"0","res_info":"ok","queryorder_info":{"order_num":"5","orderdetail":"ok"}}构造对象:复制代码代码如下:public struct ToJsonMy2{public string result { get; set; }public string res_info { get; set; }public queryorder_info queryorder_info;}public struct queryorder_info{public string order_num { get; set; }public string orderdetail { get; set; }};转换过程:复制代码代码如下:public static void JsonMy2(){string json = Jsonstr("D:\\json\\jsonmy2.txt");JavaScriptSerializer js = new JavaScriptSerializer(); //实例化⼀个能够序列化数据的类ToJsonMy2 list = js.Deserialize<ToJsonMy2>(json); //将json数据转化为对象类型并赋值给liststring result = list.result;string res_info = list.res_info;string order_num = list.queryorder_info.order_num;string orderdetail = list.queryorder_info.orderdetail;}三、C#处理包含对象、数组的json数据json数据:jsonmy4.txt复制代码代码如下:{"result":"0","res_info":"ok","queryorder_info":{"order_num":"5","orderdetail":[{"CFTUin":"769839263","CancelDeadline":"2013-09-12 23:00:00","CheckInDate":"2013-09-12 00:00:00","CheckOutDate":"2013-09-1300:00:00","CityID":"0101","CurrencyCode":"RMB","HotelID":"00301105","HotelName":"乐家连锁(北京天坛南门店)(原速8酒店(北京天坛南门店)","ListID":"1000000005201308280002999652","PayAmt":"228","PayType":"0","RommsCnt":"1","SPTransID":"65202157","State":"4"}, {"CFTUin":"248486133","CancelDeadline":"2013-10-13 23:00:00","CheckInDate":"2013-10-13 00:00:00","CheckOutDate":"2013-10-18 00:00:00","CityID":"0201","CurrencyCode":"RMB","HotelID":"10201314","HotelName":"上海凯顿酒店","ListID":"1000000005201308280002999413","PayAmt":"1140","PayType":"0","RommsCnt":"1","SPTransID":"65197226","State":"4"}]}}构造对象:复制代码代码如下:public struct ToJsonMy3{public string result { get; set; }public string res_info { get; set; }public queryorder_info queryorder_info;}public struct queryorder_info{public string order_num { get; set; }public List<orderdetail> orderdetail;//数组处理};public struct orderdetail{public string CFTUin { get; set; }public string CancelDeadline { get; set; }public string CheckInDate { get; set; }public string CheckOutDate { get; set; }public string CityID { get; set; }public string CurrencyCode { get; set; }public string HotelID { get; set; }public string HotelName { get; set; }public string ListID { get; set; }public string PayAmt { get; set; }public string PayType { get; set; }public string RommsCnt { get; set; }public string SPTransID { get; set; }public string State { get; set; }};转换过程:复制代码代码如下:public static void JsonMy4(){string json = Jsonstr("D:\\json\\jsonmy4.txt");JavaScriptSerializer js = new JavaScriptSerializer(); //实例化⼀个能够序列化数据的类ToJsonMy3 list = js.Deserialize<ToJsonMy3>(json); //将json数据转化为对象类型并赋值给liststring result = list.result;string res_info = list.res_info;string order_num = list.queryorder_info.order_num;List<orderdetail> orderdetail = list.queryorder_info.orderdetail;string CFTUin = orderdetail[0].CFTUin;string HotelName = orderdetail[0].HotelName; string ListID = orderdetail[1].ListID;string State = orderdetail[2].State;}。
mysql 5.7中json的使用
*************************** 1. row ***************************
authors_exists: 0
1 row in set (0.00 sec)
总结下, 虽然MySQL5.7 开始支持JSON数据类型,但是我建议如果要使用的话,最好是把这样的值取出
的值拿出来:
mysql> SELECT json_extract(AUTHORS,'$.lastName[0]') AS 'name', AUTHORS FROM
-> (
-> SELECT id,json_extract(person_desc,'$.authors[0][0]') AS "authors" FROM json_test
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
♦ 查找下对应的KEY,发现已经被删除掉了。
mysql> SELECT json_contains_path(person_desc,'all','$.authors') as authors_exists
看看MySQL老版本的JSON存取。
一:示例1
表结构:
CREATE TABLE json_test(
id INT,
person_desc TEXT
)ENGINE INNODB;
我们来插入一条记录:
NSERT INTO json_test VALUES (1,'{
JSON.stringify的使用方法
JSON.stringify的使⽤⽅法语法:JSON.stringify(value [, replacer] [, space])value:是必须要的字段。
就是你输⼊的对象,⽐如数组啊,类啊等等。
replacer:这个是可选的。
它⼜分为2种⽅式,⼀种是⽅法,第⼆种是数组。
情况⼀:我们先说数据,通过我们后⾯的实验可以知道,它是和第⼀个有关系的。
⼀般来说,我们系列化后的结果是通过键值对来进⾏表⽰的。
⽐如说:name:"lan",age:25这种形式。
所以,如果这种形式的话,如果第⼆个的值在第⼀个存在,那么的话就以第⼆个的值做key,第⼀个值为value进⾏表⽰,如果不存在,sorry,忽略。
【是不是有点抽象,我也这么觉得,不过你等⼀下看实验就OK了。
呼呼。
】情况⼆:如果是⽅法,那很简单,就是说把系列化后的每⼀个对象(记住是每⼀个)传进⽅法⾥⾯进⾏处理。
space:很好理解,⽤什么来做分隔符的。
1.如果省略的话,那么显⽰出来的值就没有分隔符。
直接输出来2.如果是⼀个数字的话,那么它就定义缩进⼏个字符,当然如果⼤于10 ,则最⼤值为10.3.如果是⼀些转义字符,⽐如“\t”,表⽰回车,那么它每⾏⼀个回车。
4.如果仅仅是字符串,OK,就在每⾏输出值的时候把这些字符串附加上去就OK。
当然,最⼤长度也是10个字符。
开始⽤实例说明;1.只有⼀个参数的情况下:var student = new Object(); = "Lanny";student.age = "25";student.location = "China";var json = JSON.stringify(student);alert(student); 结果如下:有些⼈可能会怀疑JSON.stringify的作⽤,OK。
那假如,我们不要这个函数。
代码下⾯的样⼦:var student = new Object(); = "Lanny";student.age = "25";student.location = "China";// var json = JSON.stringify(student);alert(student); 恭喜你得到的结果是:没骗你吧,继续。
golangjson数组拼接的实例
golangjson数组拼接的实例看代码吧~func main() {a := []byte(`{"Parents": [ "aaaaa", "bbbbbbb" ]}`)b := []byte(`{"Parents": [ "Gomez", "Moticia" ]}`)var arr []interface{}js, _ := simplejson.NewJson(a)nodes, _ := js.Map()p := nodes["Parents"]d := p.([]interface{})for _, v := range d {arr = append(arr, v)}js, _ = simplejson.NewJson(b)nodes, _ = js.Map()p = nodes["Parents"]d = p.([]interface{})for _, v := range d {arr = append(arr, v)}res := make(map[string]interface{})res["Parents"] = arrc, _ := json.Marshal(res)fmt.Println(string(c))}结果:{“Parents”:[“aaaaa”,”bbbbbbb”,”Gomez”,”Moticia”]}相应的,如果数组⾥⾯是interface类型同样适⽤。
补充:go实现json数组嵌套引⽤包 “encoding/json"定义以下结构体type person struct {Name string `json:"name"`Sex string `json:"sex"`Age string `json:"age"`}type test struct {Class int `json:"class"`Person []person `json:"person"`}创建实例如下class6 :=`{ "class":6,"person":[{"name":"wangha","sex":"male","age":"18"},{"name":"zhang","sex":"female","age":"16"}]}`对class6进⾏解析var keys testif err := json.Unmarshal([]byte(class6), &keys);err != nil{fmt.Println(err)}else {fmt.Printf("%+v\n", keys)fmt.Printf("%+v\n", keys.Person[1])fmt.Printf("%s\n", keys.Person[0].Sex)}以上为个⼈经验,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
C#实现简单的JSON序列化功能代码实例
C#实现简单的JSON序列化功能代码实例好久没有做web了,JSON⽬前⽐较流⾏,闲得没事,所以动⼿试试将对象序列化为JSON字符(尽管DotNet Framework已经有现成的库,也有⽐较好的第三⽅开源库),⽽且只是实现了处理简单的类型,并且DateTime处理的也不专业,有兴趣的筒⼦可以扩展,代码⽐较简单,反序列化⽊有实现:( ,直接贴代码吧,都有注释了,所以废话不多说 :)复制代码代码如下:测试类/// <summary>/// Nested class of Person./// </summary>public class House{public string Name{get;set;}public double Price{get;set;}}/// <summary>/// Person dummy class/// </summary>public class Person{public string Name{get;set;}public int Age{get;set;}public string Address{get;set;}private int h = 12;public bool IsMarried{get;set;}public string[] Names{get;set;}public int[] Ages{get;set;}public House MyHouse{get;set;}public DateTime BirthDay{get;set;}public List<string> Friends{get;set;}public List<int> LoveNumbers{get;set;}}复制代码代码如下:接⼝定义 /// <summary>/// IJsonSerializer interface./// </summary>interface IJsonSerializer{/// <summary>/// Serialize object to json string./// </summary>/// <typeparam name="T">The type to be serialized.</typeparam>/// <param name="obj">Instance of the type T.</param>/// <returns>json string.</returns>string Serialize(object obj);/// <summary>/// Deserialize json string to object./// </summary>/// <typeparam name="T">The type to be deserialized.</typeparam> /// <param name="jsonString">json string.</param>/// <returns>instance of type T.</returns>T Deserialize<T>(string jsonString);}接⼝实现,还有待完善..复制代码代码如下:/// <summary>/// Implement IJsonSerializer, but Deserialize had not been implemented. /// </summary>public class JsonSerializer : IJsonSerializer{/// <summary>/// Serialize object to json string./// </summary>/// <typeparam name="T">The type to be serialized.</typeparam>/// <param name="obj">Instance of the type T.</param>/// <returns>json string.</returns>public string Serialize(object obj){if (obj == null){return "{}";}// Get the type of obj.Type t = obj.GetType();// Just deal with the public instance properties. others ignored.BindingFlags bf = BindingFlags.Instance | BindingFlags.Public;PropertyInfo[] pis = t.GetProperties(bf);StringBuilder json = new StringBuilder("{");if (pis != null && pis.Length > 0){int i = 0;int lastIndex = pis.Length - 1;foreach (PropertyInfo p in pis){// Simple stringif (p.PropertyType.Equals(typeof(string))){json.AppendFormat("\"{0}\":\"{1}\"", , p.GetValue(obj, null));}// Number,boolean.else if (p.PropertyType.Equals(typeof(int)) ||p.PropertyType.Equals(typeof(bool)) ||p.PropertyType.Equals(typeof(double)) ||p.PropertyType.Equals(typeof(decimal))){json.AppendFormat("\"{0}\":{1}", , p.GetValue(obj, null).ToString().ToLower());}// Array.else if (isArrayType(p.PropertyType)){// Array case.object o = p.GetValue(obj, null);if (o == null){json.AppendFormat("\"{0}\":{1}", , "null");}else{json.AppendFormat("\"{0}\":{1}", , getArrayValue((Array)p.GetValue(obj, null))); }}// Class type. custom class, list collections and so forth.else if (isCustomClassType(p.PropertyType)){object v = p.GetValue(obj, null);if (v is IList){IList il = v as IList;string subJsString = getIListValue(il);json.AppendFormat("\"{0}\":{1}", , subJsString);}{// Normal class type.string subJsString = Serialize(p.GetValue(obj, null));json.AppendFormat("\"{0}\":{1}", , subJsString);}}// Datetimeelse if (p.PropertyType.Equals(typeof(DateTime))){DateTime dt = (DateTime)p.GetValue(obj, null);if (dt == default(DateTime)){json.AppendFormat("\"{0}\":\"\"", );}else{json.AppendFormat("\"{0}\":\"{1}\"", , ((DateTime)p.GetValue(obj, null)).ToString("yyyy-MM-dd HH:mm:ss"));}}else{// TODO: extend.}if (i >= 0 && i != lastIndex){json.Append(",");}++i;}}json.Append("}");return json.ToString();}/// <summary>/// Deserialize json string to object./// </summary>/// <typeparam name="T">The type to be deserialized.</typeparam>/// <param name="jsonString">json string.</param>/// <returns>instance of type T.</returns>public T Deserialize<T>(string jsonString){throw new NotImplementedException("Not implemented :(");}/// <summary>/// Get array json format string value./// </summary>/// <param name="obj">array object</param>/// <returns>js format array string.</returns>string getArrayValue(Array obj){if (obj != null){if (obj.Length == 0){}object firstElement = obj.GetValue(0);Type et = firstElement.GetType();bool quotable = et == typeof(string);StringBuilder sb = new StringBuilder("[");int index = 0;int lastIndex = obj.Length - 1;if (quotable){foreach (var item in obj){sb.AppendFormat("\"{0}\"", item.ToString()); if (index >= 0 && index != lastIndex){sb.Append(",");}++index;}}else{foreach (var item in obj){sb.Append(item.ToString());if (index >= 0 && index != lastIndex){sb.Append(",");}++index;}}sb.Append("]");return sb.ToString();}return "null";}/// <summary>/// Get Ilist json format string value./// </summary>/// <param name="obj">IList object</param>/// <returns>js format IList string.</returns>string getIListValue(IList obj){if (obj != null){if (obj.Count == 0){return "[]";}object firstElement = obj[0];Type et = firstElement.GetType();bool quotable = et == typeof(string);StringBuilder sb = new StringBuilder("[");int index = 0;int lastIndex = obj.Count - 1;if (quotable){foreach (var item in obj){sb.AppendFormat("\"{0}\"", item.ToString()); if (index >= 0 && index != lastIndex){sb.Append(",");}++index;}}else{foreach (var item in obj){sb.Append(item.ToString());if (index >= 0 && index != lastIndex){sb.Append(",");}++index;}}sb.Append("]");return sb.ToString();}return "null";}/// <summary>/// Check whether t is array type./// </summary>/// <param name="t"></param>/// <returns></returns>bool isArrayType(Type t){if (t != null){return t.IsArray;}return false;}/// <summary>/// Check whether t is custom class type./// </summary>/// <param name="t"></param>/// <returns></returns>bool isCustomClassType(Type t){if (t != null){return t.IsClass && t != typeof(string);}return false;}}测试代码:复制代码代码如下:class Program{static void Main(string[] args){Person ps = new Person(){Name = "Leon",Age = 25,Address = "China",IsMarried = false,Names = new string[] { "wgc", "leon", "giantfish" },Ages = new int[] { 1, 2, 3, 4 },MyHouse = new House(){Name = "HouseName",Price = 100.01,},BirthDay = new DateTime(1986, 12, 20, 12, 12, 10),Friends = new List<string>() { "friend1", "friend2" },LoveNumbers = new List<int>() { 1, 2, 3 }};IJsonSerializer js = new JsonSerializer();string s = js.Serialize(ps);Console.WriteLine(s);Console.ReadKey();}}⽣成的 JSON字符串:复制代码代码如下:{"Name":"Leon","Age":25,"Address":"China","IsMarried":false,"Names":["wgc","leon","giantfish"],"Ages": [1,2,3,4],"MyHouse":{"Name":"HouseName","Price":100.01},"BirthDay":"1986-12-20 12:12:10","Friends": ["friend1","friend2"],"LoveNumbers":[1,2,3]}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
var toolbar = new Ext.Toolbar( [ {// 创建GridPanel的工具栏组件
text : '新增员工信息',
i
handler : addUser
}, {
text : '删除员工信息',
iconCls : 'remove',
}
}
然后我们要位User这个简单对象构建JSON,我们构建的JSON还能统计JSON中User对象个个数,这里我们新建一个TotalJson对象
TotalJson.java
import java.util.List;
public class TotalJson {
private long results;//数据长度
return items;
}
public void setItems(List items) {
this.items = items;
}
}
最后我们写一个客户端来测试JSON的使用,代码如下
Test2.java
import java.util.ArrayList;
import java.util.List;
}),
// reader : new Ext.data.XmlReader( {// 创建xml数据解析器
// totalRecords : "results",
// record : "UserForm",// 对应的Form,下面的字段名与此Form中的相同,数量可以不同
import net.sf.json.JSONObject;
public class Test2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
List<User> list = new ArrayList<User>();
} ]);
var userGrid = new Ext.grid.GridPanel( {// 创建Grid表格组件
applyTo : 'user-grid-div',// 设置表格现实位置
frame : true,// 渲染表格面板
tbar : toolbar,// 设置顶端工具栏
sortable : true
}, {
header : "联系电话",
width : 60,
dataIndex : 'telephone',
sortable : true
}, {
header : "电子邮箱",
width : 80,
dataIndex : 'email',
return userId;
}
public void setUserId(Integer userId) {
erId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
return getJsonFromList2(beanList.size(), beanList);
}
/**
* 将List数组转化为Json数据格式
* @param recordTotal List数组长度
* @param beanList 要转化的List数组
4.Extjs+JSON实例
4.1.Extjs前台代码:
var userStore = new Ext.data.Store( {// 定义数据集对象
proxy : new Ext.data.HttpProxy( {
url : 'user.do?method=getUserList×tamp=' + new Date()// 设置代理请求的url
width : 110
})
]);
var sm = new Ext.grid.CheckboxSelectionModel();// 创建复选择模式对象
var cm = new Ext.grid.ColumnModel( [// 创建表格列模型
new Ext.grid.RowNumberer(), sm, {
简单JSON实例
首先我们创建一个叫做User的简单对象。代码如下:
User.java
public class User{
private Integer userId;
private String userName;
private String password;
public Integer getUserId() {
// id : "userId"
// }, Ext.data.Record.create( [ {
// name : 'userId'
// }, {
// name : 'userName'
// }, {
// name : 'realName'
// }, {
// name : 'roleId'
handler : deleteUser
}, {
text : '修改员工信息',
iconCls : 'plugin',
handler : updateUser
}
, '-','查询:',' ', new Ext.ux.form.SearchField( {
store : userStore,
* 输出结果:
* JsonOb:{
* "items":[
* {"password":"","userId":1,"userName":"zhangsan"},
* {"password":"","userId":2,"userName":"lisi"}],
private List items;//数据条目
public long getResults() {
return results;
}
public void setResults(long results) {
this.results = results;
}
public List getItems() {
sortable : true
}, {
header : "住址",
width : 80,
dataIndex : 'address',
sortable : true
}, {
header : "备注",
width : 60,
dataIndex : 'remark'
JsonOb:{"items":[{"password":"","userId":1,"userName":"zhangsan"},{"password":"","userId":2,"userName":"lisi"}],"results":2}
从输出结果我们可以看出,这个JSON中有两条记录,两条记录如下表格所示。
//创建用户1
User user1 = new User();
user1.setUserId(1);
user1.setUserName("zhangsan");
list.add(user1);
//创建用户2
User user2 = new User();
user2.setUserId(2);
* "results":2}
*/
}
/**
* 将List数组转化为JSON数据格式
* @param beanList 要转化的List数组
*/
public static JSONObject getJsonFromList2(List beanList) {
user2.setUserName("lisi");
list.add(user2);
//创建JSON对象
JSONObject JsonOb=getJsonFromList2(list);
System.out.println("JsonOb:"+JsonOb);
/**
stripeRows : true,// 显示斑马线
autoScroll : true,// 当数据查过表格宽度时,显示滚动条
store : userStore,// 设置表格对应的数据集
viewConfig : {// 自动充满表格