本文目录一览:
- 1、java如何创建Json文件?
- 2、如何将json数据生成json文件格式
- 3、如何生成optional.json文件
- 4、PHP生成及获取JSON文件的方法
- 5、asp.net 生成json文件
- 6、如何让mmfewshot目标检测的结果生成json文件
java如何创建Json文件?
如果聊天数据的结构是固定的或变化不大的。
就直接“编排”json字符串。
为要输出的对象增加一个String toJSON()方法
StringBuilder b=new StringBuilder();
b.append("{ name:\"");
b.append(username);
b.append("\"}");
依次类推
return b.toString();
适合绝大多数情况。
补充:json是做交换格式,查询效率非常低,如果做存储的检索格式就误用了。
就是说“聊天信息的保存用json应该可以吧”还不如你之前的mysql数据库。
json用在客户端往服务端发送的通讯交换数据的格式上。服务端收到后转为数据库中或内存中存放。
如何将json数据生成json文件格式
字符串格式json转化成json对象有3种方式: 1:js下用eval生成JSON对象 ---通过eval() 函数可以将JSON字符串转化为对象。 2:使用函数方式 3:使用js的json库或者jQuery提供的js库 --- 如果基于安全的考虑的话,最好是使用一个 JSON 解析器。
如何生成optional.json文件
1、前端new一个domain实体,把Option类型的改成对应的非Optional类型
2、soa提供DzpList和DzpNoOptional,借用工具类生成,前端使用DzpNoOptional类型的list接受,接着遍历list数据并把EtradeList类型逐一转成DzpNoOptional,再add到DzpNoOptional类型的list返回json到前端。
3、抽取一个工具类方法,用于遍历处理步骤2在每个方法中都重复进行的操作。
4、在pagingBean的json数据返回前端的一些列数据转换过程中下手,关键在于该在什么处理方法中找到切入点。
Soa—List(TDzpSpecial)Soa—List(TDzpSpecial)Admin—List(TDzpSpecial)Admin—List(TDzpSpecial)List(TDzpSpecialNoOptional)List(TDzpSpecialNoOptional)js(json接收)js(json接收)调用soa返回数据集合遍历转换List集合TDzpSpecialpagingBean.getRows
extra1:方法2的处理方式:
案例
@RequestMapping(value = "querySpecials", method = RequestMethod.GET)
@ResponseBody
public KsPagingBeanTDzpSpecialNoOptional, TDzpSpecialNoOptional querySpecials(QuerySpecialRequestNoOptional querySpecialRequestNoOptional, KsPagingBeanTDzpSpecialNoOptional, TDzpSpecialNoOptional pagingBean) throws Exception {
DzpServiceClient dzpBidService = new DzpServiceClient();
QuerySpecialRequest querySpecialRequest=ThriftBeanConverter.copy(querySpecialRequestNoOptional, QuerySpecialRequest.class);
QuerySpecialResponse specialList = dzpBidService.getDzpSpecial(querySpecialRequest);
ListTDzpSpecialNoOptional specialNoOptionals = new ArrayList();
/*
if (!CollectionUtils.isEmpty(specialList.getSpecial())) {
for (TDzpSpecial special: specialList.getSpecial()) {
TDzpSpecialNoOptional specialNoOptional = TDzpSpecialNoOptional.copy(special);
specialNoOptionals.add(specialNoOptional);
}
}
pagingBean.setResults(specialList.getPageResponse().get().getResults());
*/
pagingBean.setRows(specialShowNoOptionals);
return pagingBean;
}1234567891011121314151617181920
extra2:方法4的处理方式:
a、引入jackson升级包
!-- Jackson JSON Processor使用2.6.3。jdk8Module --
dependency
groupIdcom.fasterxml.jackson.datatype/groupId
artifactIdjackson-datatype-jdk8/artifactId
version${com.fasterxml.jackson.version}/version
/dependency
dependency
groupIdcom.fasterxml.jackson.core/groupId
artifactIdjackson-databind/artifactId
version${com.fasterxml.jackson.version}/version
/dependency1234567891011
b、jackson2.6.3成功解析option的原因
//Jdk8Module
context.addSerializers(new Jdk8Serializers());
context.addDeserializers(new Jdk8Deserializers());
context.addTypeModifier(new Jdk8TypeModifier());
//com.fasterxml.jackson.datatype.jdk8
//Jdk8Serializers
//OptionalSerializer
public void serialize(Optional? opt, JsonGenerator gen, SerializerProvider provider) throws IOException {
if(opt.isPresent()) {
Object value = opt.get();
JsonSerializer ser = this._valueSerializer;
if(ser == null) {
ser = this._findCachedSerializer(provider, value.getClass());
}
ser.serialize(value, gen, provider);
} else {
provider.defaultSerializeNull(gen);
}
1234567891011121314151617181920
case2.
以网站部分同样对于Optional类型的返回不友好场景分两种
1. responseBody返回json数据到js中
2. request.setAttribute(“pageResponse”, response)返回数据到jsp中,jsp通过c:forEach、c:out标签遍历显示数据
extra1:对于场景1的mind
案例:
@RequestMapping(value = "listtest", method = RequestMethod.GET)
@ResponseBody
public void listtest(PagingBeanPerson pb, Person claim,HttpServletResponse response) {
ListPerson personList=new ArrayListPerson();
Person person1=new Person();
Person person2=new Person();
person1.setName(Optional.of("luosan"));
person1.setHobby("乒乓球");
person1.setId(1);
person2.setName(Optional.of("lufei"));
person2.setHobby("白云机场");
person2.setId(2);
personList.add(person1);
personList.add(person2);
pb.setRows(personList);
HttpServletHelper.writeJsonToResponse(response, pb);
}1234567891011121314151617
thinking:
1、对于现有HttpServletHelper的json处理方式改装
try {
//原有方式
response.getWriter().print(new Gson().toJson(responseData));
//改装方式
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new Jdk8Module());
String withEmailJson = mapper.writeValueAsString(responseData);
response.getWriter().print(withEmailJson);
} catch (IOException e) {
LOGGER.error(e.getMessage(), e);
}
123456789101112131415
2、对于每次Registering module需要重新封装
3、在其他的返回数据处理层进行处理?
extra2:对于场景2的mind
thinking
因为jsp中的jstl标签直接对java中的对象操作,所以这个时候并未在返回jsp的过程中进行json序列化之类的处理,可以理解为此时的对象与control层的对象基本一致。
问题在于c:out标签解析的时候不支持optional的类型,效果如上图
于是我试图通过更改jstl标签实现支持
package org.apache.taglibs.standard.tag.el.core;
public class OutTag extends OutSupport {
// Accessors
// for tag attribute
public void setValue(Object value) {
//原有方式
this.value =value
//改装方式
this.value =value instanceof Optional? ((Optional) value).get():value;
}
public void setDefault(String def) {
this.def = def;
}
public void setEscapeXml(boolean escapeXml) {
this.escapeXml = escapeXml;
}
}1234567891011121314151617
PHP生成及获取JSON文件的方法
本文实例讲述了PHP生成及获取JSON文件的方法。分享给大家供大家参考,具体如下:
首先定义一个数组,然后遍历数据表,把相应的数据放到数组中,最后通过json_encode()转化数组
json_encode()
函数的功能是将数值转换成
JSON
数据存储格式。
putjson.php:
?php
//
生成一个PHP数组
$data
=
array();
$data[0]
=
array('1','吴者然','onestopweb.cn');
$data[1]
=
array('2','何开','iteye.com');
//
把PHP数组转成JSON字符串
$json_string
=
json_encode($data);
//
写入文件
file_put_contents('test.json',
$json_string);
?
有同名的
JSON
文件则覆盖,没有则创建。
生成或覆盖的
JSON
如下:
复制代码
代码如下:[["1","\u811A\u672C\u4E4B\u5BB6",""],["2","\u7F16\u7A0B\u5F00\u53D1","jb51.net"]]
然后,把
JSON
文件中的数据读取到PHP变量中。
getjson.php:
?php
//
从文件中读取数据到PHP变量
$json_string
=
file_get_contents('test.json');
//
把JSON字符串转成PHP数组
$data
=
json_decode($json_string,
true);
//
显示出来看看
var_dump($data);
echo
'brbr';
print_r($data);
echo
'brbr';
echo
'编号:'.$data[0][0].'
姓名:'.$data[0][1].'
网址:'.$data[0][2];
echo
'br';
echo
'编号:'.$data[1][0].'
姓名:'.$data[1][1].'
网址:'.$data[1][2];
?
效果图:
PS:这里再为大家推荐几款比较实用的json在线工具供大家参考使用:
在线JSON代码检验、检验、美化、格式化工具:
JSON在线格式化工具:
在线XML/JSON互相转换工具:
json代码在线格式化/美化/压缩/编辑/转换工具:
C语言风格/HTML/CSS/json代码格式化美化工具:
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP中json格式数据操作技巧汇总》、《PHP针对XML文件操作技巧总结》、《PHP基本语法入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
asp.net 生成json文件
就和生成其他文件方式是一样的,将json格式数据写到文件,然后保存为.json后缀就可以了
如何让mmfewshot目标检测的结果生成json文件
让mmfewshot目标检测的结果生成json文件先把你的JSON转成String,然后创建文件,以IO流输出即可。
json说白了只是一串长得像js对象字符串,不是一个后缀名或者一种文件形式,所以只要将这个字符串传给前端js处理就行了,json本身就是一个对象,所以你可以直接赋值给一个对象就行。