- 浏览: 135989 次
- 性别:
- 来自: 上海
-
文章分类
最新评论
-
xinglianxlxl:
看看,不确定用了吗
url参数和map之间的转换 -
ijlkdwg:
没有看到 jar 包在哪 ?
java获取5日天气预报(json数据) -
BUYAOZAIBEIDAOLE:
查询一下就找到了,拿走试下,谢谢LZ
反射工具类 -
w1106093687:
引用试试什么效果
java bean反射 获取get set方法(Method) -
moxin0703:
哪有Utils包啊?
java获取5日天气预报(json数据)
user.json文件数据如下:
User.java
将json转换为User对象
将json转换为Map对象
通过向Map中添加数据来生成json
类型对照:
{ "name" : { "first" : "Joe", "last" : "Sixpack" }, "gender" : "MALE", "verified" : false, "userImage" : "Rm9vYmFyIQ==" }
User.java
public class User { public enum Gender { MALE, FEMALE }; public static class Name { private String _first, _last; public String getFirst() { return _first; } public String getLast() { return _last; } public void setFirst(String s) { _first = s; } public void setLast(String s) { _last = s; } } private Gender _gender; private Name _name; private boolean _isVerified; private byte[] _userImage; public Name getName() { return _name; } public boolean isVerified() { return _isVerified; } public Gender getGender() { return _gender; } public byte[] getUserImage() { return _userImage; } public void setName(Name n) { _name = n; } public void setVerified(boolean b) { _isVerified = b; } public void setGender(Gender g) { _gender = g; } public void setUserImage(byte[] b) { _userImage = b; } }
将json转换为User对象
ObjectMapper mapper = new ObjectMapper(); // can reuse, share globally User user = mapper.readValue(new File("user.json"), User.class);
将json转换为Map对象
Map<String,Object> userData = mapper.readValue(new File("user.json"), Map.class);
通过向Map中添加数据来生成json
Map<String,Object> userData = new HashMap<String,Object>(); Map<String,String> nameStruct = new HashMap<String,String>(); nameStruct.put("first", "Joe"); nameStruct.put("last", "Sixpack"); userData.put("name", nameStruct); userData.put("gender", "MALE"); userData.put("verified", Boolean.FALSE); userData.put("userImage", "Rm9vYmFyIQ==");
mapper.writeValue(new File("user-modified.json"), userData);
类型对照:

Map<String,User> result = mapper.readValue(src, new TypeReference<Map<String,User>>() { });
ObjectMapper m = new ObjectMapper(); // can either use mapper.readTree(JsonParser), or bind to JsonNode JsonNode rootNode = m.readValue(new File("user.json"), JsonNode.class); // ensure that "last name" isn't "Xmler"; if is, change to "Jsoner" JsonNode nameNode = rootNode.path("name"); String lastName = nameNode.path("last").getTextValue(). if ("xmler".equalsIgnoreCase(lastName)) { ((ObjectNode)nameNode).put("last", "Jsoner"); } // and write it out: m.writeValue(new File("user-modified.json"), rootNode);
TreeMapper treeMapper = new TreeMapper(); ObjectNode userOb = treeMapper.objectNode(); Object nameOb = userRoot.putObject("name"); nameOb.put("first", "Joe"); nameOb.put("last", "Sixpack"); userOb.put("gender", User.Gender.MALE.toString()); userOb.put("verified", false); byte[] imageData = getImageData(); // or wherever it comes from userOb.put("userImage", imageData);
JsonFactory f = new JsonFactory(); JsonGenerator g = f.createJsonGenerator(new File("user.json")); g.writeStartObject(); g.writeObjectFieldStart("name"); g.writeStringField("first", "Joe"); g.writeStringField("last", "Sixpack"); g.writeEndObject(); // for field 'name' g.writeStringField("gender", Gender.MALE); g.writeBooleanField("verified", false); g.writeFieldName("userImage"); // no 'writeBinaryField' (yet?) byte[] binaryData = ...; g.writeBinary(binaryData); g.writeEndObject(); g.close(); // important: will force flushing of output, close underlying output stream
JsonFactory f = new JsonFactory(); JsonParser jp = f.createJsonParser(new File("user.json")); User user = new User(); jp.nextToken(); // will return JsonToken.START_OBJECT (verify?) while (jp.nextToken() != JsonToken.END_OBJECT) { String fieldname = jp.getCurrentName(); jp.nextToken(); // move to value, or START_OBJECT/START_ARRAY if ("name".equals(fieldname)) { // contains an object Name name = new Name(); while (jp.nextToken() != JsonToken.END_OBJECT) { String namefield = jp.getCurrentName(); jp.nextToken(); // move to value if ("first".equals(namefield)) { name.setFirst(jp.getText()); } else if ("last".equals(namefield)) { name.setLast(jp.getText()); } else { throw new IllegalStateException("Unrecognized field '"+fieldname+"'!"); } } user.setName(name); } else if ("gender".equals(fieldname)) { user.setGender(Gender.valueOf(jp.getText())); } else if ("verified".equals(fieldname)) { user.setVerified(jp.getCurrentToken() == JsonToken.VALUE_TRUE); } else if ("userImage".equals(fieldname)) { user.setUserImage(jp.getBinaryValue()); } else { throw new IllegalStateException("Unrecognized field '"+fieldname+"'!"); } } jp.close(); // ensure resources get cleaned up timely and properly
发表评论
-
Tomcat 启动不了问题
2010-09-07 16:54 896把jre里的msvcr71.dll文件拷贝到C:\window ... -
Properties类小结
2010-09-06 16:20 881目前有个任务,要用到java.util.Properties类 ... -
lucene 创建索引
2010-09-01 14:48 1066@Retention(RetentionPolicy.RU ... -
反射工具类
2010-09-01 11:22 1485import java.lang.reflect.Fie ... -
url参数和map之间的转换
2010-09-01 11:10 9243/** * 将url参数转换成map * @ ... -
使用jackson解析json数据时获取多级节点的值,递归实现
2010-09-01 11:08 5925/** * 解析jsonNode的值 * @ ... -
将javabean转换成Map
2010-09-01 11:06 1811public static Map<String, ... -
httpclient4 ThreadSafeClientConnManager 多线程程执行HTTP请求的例子
2010-08-27 13:49 7286package cn.lake.util; import ... -
CalendarUtil
2010-08-19 15:35 1000package com.test; import ... -
java 中对象属性和数据库中字段名的转换
2010-08-18 18:18 5477在开发过程中数据中的字段的命名一般是这样的:user_name ... -
使用HttpClient4 和jsoup下载Google 1998年到2010年的logo(原创)
2010-08-14 21:52 1178我个人比较喜欢Google的logo,感觉设计的很好,以前都是 ... -
GoogleLogoUtil
2010-08-13 13:05 810package com.test; import ... -
HttpClient4 实现文件下载
2010-08-12 18:19 3081HttpClient4 实现文件下载,依赖commons-io ... -
java httpClient4.0 通过代理认证访问网站
2010-08-11 10:09 2943httpClient4.0 通过代理认证访问网站 imp ... -
httpclient 获取到网页内容自动判断内容编码
2010-08-08 16:25 6529在“导航189”网站中编 ... -
java 生成32位UUID
2010-07-27 18:53 2591java 生成32位UUID,需要apache的2个jar(c ... -
java bean反射 获取get set方法(Method)
2010-07-27 18:44 9455/** * java反射bean的get方法 ... -
java 半角与全角转换
2010-07-27 18:41 945/** * 半角转全角 * ... -
使用jackson解析json数据
2010-07-27 14:15 3108import java.util.Iterator; ... -
java高清新处理图片
2010-07-13 09:51 2526在项目中需要对图片处理(缩小、加水印),一开始用的程序虽然可以 ...
相关推荐
这个压缩包"adv-java-examples.zip"提供了丰富的学习材料,无需解压密码,使得学习者能够无障碍地探索和学习。 在"www.pudn.com.txt"文件中,可能包含了关于这些示例的来源或作者信息,或者是对整个压缩包的简要...
Java和JSON-使用ObjectMapper的Jackson示例 该存储库包含博客文章中使用的代码示例。 单击链接以获取有关示例的所有信息。 内容 该代码包含以下示例,所有这些示例均在同一JUnit测试中,您可以实际看到期望的输出...
标题 "mssc-jackson-examples" 提供的信息表明,这是一个关于使用Jackson库与Spring Framework集成的示例项目。Jackson是一个广泛使用的Java库,用于处理JSON数据的序列化和反序列化,而Spring Framework则是一个...
New in this edition is coverage of Jackson (a JSON processor for Java) and Oracle’s own Java API for JSON processing (JSON-P), which is a JSON processing API for Java EE that also can be used with ...
在Java中,有许多JSON库,如Jackson、Gson、org.json等,它们提供了将Java对象转换为JSON字符串以及反序列化JSON到Java对象的功能。 6. **jstl**: JSTL(JavaServer Pages Standard Tag Library)是一组标准标签...
2. **实体类**:如果涉及数据交换,可能包含用于序列化和反序列化的Java类,这些类通常会用到JAXB或Jackson库进行JSON或XML的转换。 3. **依赖注入**:可能使用了CDI(Contexts and Dependency Injection)来管理...
This is a simple implementation in Java for the server side of [examples/crudl.sadl](https://github.com/boynton/sadl/blob/master/examples/crudl.sadl). To build and run the server: $ make 然后您可以对...
poi-examples-3.12.jar poi-excelant-3.12.jar poi-ooxml-3.12.jar poi-ooxml-schemas-3.12.jar poi-scratchpad-3.12.jar ridl-3.0.0.jar simple-spring-memcached-3.5.0.jar slf4j-api-1.6.0.jar slf4j-log...
对于Clockify API,可能还会涉及到JSON库,如Jackson或Gson,用来序列化和反序列化API的响应数据。 在“api-examples-main”这个文件夹中,我们可以预期找到主代码仓库的入口,包括但不限于以下内容: 1. 一个或多...
示例可能包括使用`org.json`库或Gson、Jackson等库解析和生成JSON数据。 5. **异步HTTP请求**:Java 8引入了CompletableFuture,可以用来处理异步HTTP请求。示例可能展示了如何使用这个特性来处理非阻塞的网络请求...
这个项目主要以Java语言编写,这符合Android平台的主要编程语言特性。在这里,我们将深入探讨"android-examples"中的关键知识点,以及如何利用这些例子来提升Android开发技能。 1. **Android基础知识**:项目中的每...
这个项目主要以Java语言编写,这符合Android平台的主要编程语言特性。 1. **聊天示例**: 聊天应用是Android开发中的常见应用场景,涉及到实时通信、用户界面设计和数据同步等多个技术点。在"android-examples"中...
Spring Boot Web起步依赖包括了Tomcat服务器、Spring Web、Spring MVC以及Jackson库(用于JSON序列化和反序列化)等,让开发者能够快速搭建起一个可运行的Web服务。 **学习资源与实践** 在"spring-project-...
对于JSON解析,可以使用Gson库将JSON字符串转化为Java对象,或者使用Jackson或org.json库进行手动解析。 其次,抵押贷款计算器涉及到金融计算,如等额本息或等额本金还款法。开发者需要了解基本的金融公式,并将其...
在"volley-examples"中,你可以学习如何创建自定义的HttpStack来处理特定的网络协议,或者使用Gson、Jackson等库对JSON数据进行解析。 在错误处理方面,Volley提供了一种统一的错误处理方式,即在Response.Error...
3. **JSON解析**:接收服务器返回的JSON数据,使用诸如Jackson或Gson的库解析这些数据,获取签到结果。 4. **错误处理**:处理可能出现的网络异常、解析错误等,并记录相关日志,便于后期排查问题。 5. **日志记录**...
这个项目以Java语言为主,因此对于想要学习或巩固Java在Android应用开发中的应用的开发者来说,这是一个宝贵的资源。 1. **Android活动(Activity)**:在Android应用中,Activity是用户界面的主要组件,它负责与...
在提供的`vaadin-spring-boot-examples-master`压缩包中,我们可以看到以下关键文件: - `src/main/java`: 存放Java源代码,包括Vaadin UI组件、REST控制器等。 - `src/main/resources`: 包含了静态资源文件,如...
作为一个专注于Java语言的项目,它提供了丰富的实例,涵盖了从基础到进阶的Android开发知识。 1. **Android基础知识**: - **Activity**:Android应用的核心组件,负责用户界面的交互。 - **Intent**:用于在组件...