これは私を狂っています。 JAX-RS(Glassfish/Jersey)のRESTエンドポイントで作業しています。 Stringを受け取って格納し返すメソッドがあります。エンドポイント全体でJSONを消費し、生成する必要があります。しかし、メソッドにStringをポストするたびに、それはエスケープされた形で私に渡されます。例えば。JAX-RS(Jersey):JSONリクエスト本体からの文字列がまだエスケープされました
fetch("http://localhost:8080/myapp/rest/myresource", {
method: "post",
credentials: 'same-origin',
body: JSON.stringify("test\ntest"),
headers: {
"Content-Type": "application/json"
}
})
とリソースがある:私は投稿した場合、その後
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class MyResource {
@POST
public String set(@NotNull String value){
// store it
return storedValue;
}
}
保存されているもの、およびクライアントに返す、次のとおりです。
"test\ntest"
場合は、しかし、私はラップオブジェクト内の文字列:
fetch("http://localhost:8080/myapp/rest/myresource", {
method: "post",
credentials: 'same-origin',
body: JSON.stringify({value: "test\ntest"}),
headers: {
"Content-Type": "application/json"
}
})
リソース
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class MyResource {
@XmlRootElement
public static class Wrapper {
public String value;
}
@POST
public String set(@NotNull Wrapper wrapper) {
String value = wrapper.value;
// store it
return storedValue;
}
}
その後、保存され、クライアントに返された値は、私が何かを
test
test
をしないのですか?
Glassfish 4.1.1
- jersey 2.10.4-0
- json 1.0-0.1