对于想了解json标头不起作用–php的读者,本文将是一篇不可错过的文章,我们将详细介绍ph破解版免费版下载安装,并且为您提供关于@JsonFormat()不起作用、android–JSONObjec
对于想了解json标头不起作用 – php的读者,本文将是一篇不可错过的文章,我们将详细介绍ph破解版免费版下载安装,并且为您提供关于@JsonFormat()不起作用、android – JSONObject的大小JSON字符串不起作用、AngularJS 2:从json文件获取数据不起作用、asp.net-mvc – IIS7 ASP.NET MVC客户端缓存标头不起作用的有价值信息。
本文目录一览:- json标头不起作用 – php(ph破解版免费版下载安装)
- @JsonFormat()不起作用
- android – JSONObject的大小JSON字符串不起作用
- AngularJS 2:从json文件获取数据不起作用
- asp.net-mvc – IIS7 ASP.NET MVC客户端缓存标头不起作用
json标头不起作用 – php(ph破解版免费版下载安装)
>观看次数
>答案数量
>帖子数量
>支持票数量
等等…
现在这个工具我允许用户以json格式检索他们的数据,我的问题是发送的标题不适用于所有浏览器
我有:
header('Cache-Control: no-cache,must-revalidate'); header('Expires: Mon,26 Jul 1997 00:00:00 GMT'); header('Content-type: text/json');
我应该删除过期和缓存控制?
解决方法
@JsonFormat()不起作用
打算将数据库取出的Date类型的数据改成一定格式的时间,如改成yyyy-MM-dd。然后在属性的get方法上加了@JsonFormat,结果取出时一直是long类型的Date,代码如下:
package soc.entity;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import com.fasterxml.jackson.annotation.JsonFormat;
//@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
/*@XmlRootElement
@XmlType(name = "user", propOrder = {
"id",
"name",
"salary",
"birthday"}
)*/
public class User {
private long id;
private String name;
@Min(value=6000,message="最低工资为6000")
@Max(value=25000,message="最高工资为25000")
private Double salary;
private Date birthday;
public User() {
}
public User(long id, String name, Double salary, String birthday) {
super();
this.id = id;
this.name = name;
this.salary = salary;
try {
this.birthday = new SimpleDateFormat("yyyy-MM-dd").parse(birthday);
} catch (ParseException e) {
e.printStackTrace();
}
}
public User(String name, Double salary, String birthday) {
super();
this.name = name;
this.salary = salary;
try {
this.birthday = new SimpleDateFormat("yyyy-MM-dd").parse(birthday);
} catch (ParseException e) {
e.printStackTrace();
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Double getSalary() {
return salary;
}
public void setSalary(Double salary) {
this.salary = salary;
}
// @XmlJavaTypeAdapter(DateAdapter.class)//这种格式也可以<birthday>2018-10-15 10:12:15</birthday>
// @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")//json的返回格式
@JsonFormat(pattern="yyyy/MM/dd HH:mm:ss",timezone = "GMT+8")//json的返回格式
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
@Override
public String toString() {
String birthdayS = (new SimpleDateFormat("yyyy-MM-dd")).format(birthday);
return "User : id="+id+", Name="+name+", Salary="+salary+", Birthday="+birthdayS;
}
}
配置类如下:
package soc.config;
import org.codehaus.jackson.jaxrs.JacksonJsonProvider;
import org.glassfish.jersey.filter.LoggingFilter;
//import org.glassfish.jersey.jackson.JacksonFeature;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.server.spring.scope.RequestContextFilter;
public class ApplicationApi extends ResourceConfig {
public ApplicationApi() {
// 注册数据转换器
register(JacksonJsonProvider.class);
// 注册日志
register(LoggingFilter.class);
// register application resources
// register(UserResource.class);
packages("soc.resource");
// register filters
register(RequestContextFilter.class);
// register mine exception class ,to find the trace of exception
register(DebugMapperException.class);
// register features
// register(JacksonFeature.class);
}
}
经过一番查看,最后发现该配置类里的JacksonJsonProvider是
org.codehaus.jackson.jaxrs.JacksonJsonProvider
而实体User类上的注解@JsonFormat则是
com.fasterxml.jackson.annotation.JsonFormat
两者根本不是同一类型,将JacksonJsonProvider改成
com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider
则问题解决。
综上得出结论,用@JsonFormat注解时,json格式支持的jaxrs的实现类必须与该注解是同一个大类型,即fasterxml,jar包如下:
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-json-provider</artifactId>
<version>2.5.4</version>
</dependency>
如果json格式支持的jaxrs的实现类是codehaus,则@JsonFormat注解不起作用,即不可以是如下jar包:
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-jaxrs</artifactId>
<version>1.9.13</version>
</dependency>
android – JSONObject的大小JSON字符串不起作用
protected class saveBtnClickHandler implements OnClickListener{
@Override
public void onClick(View v) {
String jsonRest = loadJsonDataFromURL("http://thirddhaba.appspot.com/api/v1/circle/condensed/data/?circle_id=1");
try {
JSONObject jsonObj = new JSONObject(jsonRest);
} catch (JSONException e) {
android.util.Log.e("JSON Parser", "Error parsing data " + e.toString());
}
}
}
protected String loadJsonDataFromURL(String url){
String jsonStr = null;
try {
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(new HttpGet(url));
StatusLine statusLine = response.getStatusLine();
if(statusLine.getStatusCode() == HttpStatus.SC_OK){
ByteArrayOutputStream out = new ByteArrayOutputStream();
response.getEntity().writeto(out);
out.close();
jsonStr = out.toString();
} else{
//Closes the connection.
response.getEntity().getContent().close();
throw new IOException(statusLine.getReasonPhrase());
}
} catch (Exception e) {
// Todo: handle exception
}
return jsonStr;
}
上面的代码工作正常.但是此JSON(Link)URL字符串未转换为JSON对象.我认为这是大字符串也添加错误屏幕截图.
解决方法:
您的测试数据基于[]包含在数组中.您需要将其解析为json数组而不是json对象.
JSONArray jsonArr = new JSONArray(jsonRest);
AngularJS 2:从json文件获取数据不起作用
我正在尝试从Angular服务hero.service.ts获取json数据。当在MemoryDataService中使用伪造的HTTP
API时,一切正常,我从in-memory-
data.service.ts文件中获取json数据。但是,当我尝试从真实的json文件中获取数据时,它不起作用,并且在浏览器中出现错误“找不到集合”。
以下是文件内容(所有3个文件都位于app /文件夹中):
hero.service.ts:
import { Injectable } from '@angular/core';
import { Headers,Http,Response} from '@angular/http';
import 'rxjs/add/operator/toPromise';
import { Hero } from './hero';
@Injectable()
export class HeroService {
private heroesUrl = 'app/fakeListOfHeroes'; // URL to web api
//private heroesUrl = 'app/heroes.json'; // URL to JSON file
constructor(private http: Http) { }
getHeroes(): Promise<Hero[]>
{
return this.http.get(this.heroesUrl)
.toPromise()
.then(response => response.json().data)
.catch(this.handleError);
}
private handleError(error: any)
{
console.error('An error occurred',error);
return Promise.reject(error.message || error);
}
}
hero.service.ts:
export class InMemoryDataService {
createDb() {
let fakeListOfHeroes = [
{id: 11,name: 'Mr. Nice'},{id: 12,name: 'Narco'},{id: 13,name: 'Bombasto'},{id: 14,name: 'Celeritas'},{id: 15,name: 'Magneta'},{id: 16,name: 'RubberMan'},{id: 17,name: 'Dynama'},{id: 18,name: 'Dr IQ'},{id: 19,name: 'Magma'},{id: 20,name: 'Tornado'}
];
return {fakeListOfHeroes};
}
}
heroes.json:
{
"data": [{
"id": 11,"name": "Mr. Nice"
},{
"id": 12,"name": "Narco"
},{
"id": 13,"name": "Bombasto"
},{
"id": 14,"name": "Celeritas"
},{
"id": 15,"name": "Magneta"
},{
"id": 16,"name": "RubberMan"
},{
"id": 17,"name": "Dynama"
},{
"id": 18,"name": "Dr IQ"
},{
"id": 19,"name": "Magma"
},{
"id": 20,"name": "Tornado"
}]
}
浏览器错误:
浏览器错误
任何帮助,将不胜感激。谢谢!
asp.net-mvc – IIS7 ASP.NET MVC客户端缓存标头不起作用
我已经在这里和网络上阅读了帖子,但是无法让客户端缓存工作.
我正在尝试缓存/ Content文件夹中的所有内容.到目前为止,我在IIS管理器中选择了该文件夹,并设置了相应的HTTP响应标头(在Common Headers下).我还检查了/ Content文件夹中的web.config文件,并设置了值.
/ Content中的所有资源都以此形式返回(来自FireBug):
Cache-Control no-cache,no-store,must-revalidate Pragma no-cache Content-Type image/png Expires -1 Last-Modified Sun,11 Oct 2009 19:01:40 GMT Accept-Ranges bytes Etag "f318d643a54aca1:0" Server Microsoft-IIS/7.0 X-Powered-By ASP.NET Date Sun,11 Oct 2009 20:40:01 GMT Content-Length 620
请注意请求此静态图像的Cache-Control和Expires值.
该网站目前在Debug中编译(这将改变),但肯定不会有所作为?
显然我忽略了一些东西,任何想法都会受到赞赏.
谢谢
解决方法
this thread:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <staticContent> <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" /> </staticContent> </system.webServer> </configuration>
我们今天的关于json标头不起作用 – php和ph破解版免费版下载安装的分享就到这里,谢谢您的阅读,如果想了解更多关于@JsonFormat()不起作用、android – JSONObject的大小JSON字符串不起作用、AngularJS 2:从json文件获取数据不起作用、asp.net-mvc – IIS7 ASP.NET MVC客户端缓存标头不起作用的相关信息,可以在本站进行搜索。
本文标签: