GVKun编程网logo

json标头不起作用 – php(ph破解版免费版下载安装)

7

对于想了解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破解版免费版下载安装)

json标头不起作用 – php(ph破解版免费版下载安装)

我有一个注册用户的Web服务和Web界面.此部分允许用户获取其统计信息(类似于堆栈溢出)

>观看次数
>答案数量
>帖子数量
>支持票数量
等等…

现在这个工具我允许用户以json格式检索他们的数据,我的问题是发送的标题不适用于所有浏览器

我有:

header('Cache-Control: no-cache,must-revalidate');
header('Expires: Mon,26 Jul 1997 00:00:00 GMT');
header('Content-type: text/json');

我应该删除过期和缓存控制?

解决方法

json普遍接受的MIME是application / json.

@JsonFormat()不起作用

@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字符串不起作用

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文件获取数据不起作用

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客户端缓存标头不起作用

asp.net-mvc – IIS7 ASP.NET MVC客户端缓存标头不起作用

我在IIS7和 Windows Server 2008上部署了一个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中编译(这将改变),但肯定不会有所作为?

显然我忽略了一些东西,任何想法都会受到赞赏.

谢谢

解决方法

如果您无法使用IIS管理工具使其工作,请尝试Jeff Atwood的推荐
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标头不起作用 – phpph破解版免费版下载安装的分享就到这里,谢谢您的阅读,如果想了解更多关于@JsonFormat()不起作用、android – JSONObject的大小JSON字符串不起作用、AngularJS 2:从json文件获取数据不起作用、asp.net-mvc – IIS7 ASP.NET MVC客户端缓存标头不起作用的相关信息,可以在本站进行搜索。

本文标签: