本文目錄一覽:
- 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本身就是一個對象,所以你可以直接賦值給一個對象就行。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/183901.html