2016年4月16日土曜日
d3.jsonを一時的にハードコードしたデータでテストしたい時
こういうAjaxでのリクエストを、
d3.json("/test/this/url", function(json) {
// ToDo: ------> Write something here..
}
こういう感じで変えると、バックエンドがない場合でもテストできる。
var testData = '{test:[1,2,3]}';
var json = JSON.parse( testData );
http://stackoverflow.com/questions/10934853/d3-js-loading-json-without-a-http-get
ラベル:
AJAX,
d3,
JavaScript,
JSON
RESTfulなWEBサービスへのアクセスをLinuxのコンソールからテストする方法は?
curlコマンドを使う。-HオプションでJSON取得を指定して、-Xでメソッド(GET/POST/PUT/UPDATE/DELETE)を指定できる。
curl -i -H "Accept: application/json" -X GET http://abc.def.com/test/this/url
http://stackoverflow.com/questions/21326397/curl-get-request-with-json-parameter
ラベル:
JSON,
RESTful,
WEB Service
2015年12月9日水曜日
2014年6月3日火曜日
SpringでJSONを返す場合に、特定のフィールドを表示させ無いようにするにはObjectMapperのaddMixInAnnotationsを使う。
SpringでJSONを返す場合に、特定のフィールドを表示させ無いようにするには、JacksonのObjectMapperで、addMixInAnnotationsに表示させたく無いフィールドを設定した抽象クラス、もしくはインターフェイスを大元のJSONオブジェクトにマップしたクラスに教えてやる。
Snippet
http://stackoverflow.com/questions/22609079/how-to-filter-the-json-response-returning-from-spring-rest-web-service
http://fasterxml.github.io/jackson-databind/javadoc/2.0.0/com/fasterxml/jackson/databind/ObjectMapper.html#addMixInAnnotations(java.lang.Class, java.lang.Class)
Snippet
@Controller
public class SubjectController
{
private ObjectMapper _objectMapper = new ObjectMapper();
public Controller()
{
_objectMapper.getSerializationConfig().addMixInAnnotations(Base.class, FieldsNotAvailable.class);
}
@RequestMapping(value="/path", method={RequestMethod.GET})
public @ResponseBody String getJson(ModelMap model)
{
return _objectMapper.writeValueAsString(subject);
}
}
public abstract class FiledsNotAvailable
{
@JsonIgnore
public abstract String getSomeField();
}
http://stackoverflow.com/questions/22609079/how-to-filter-the-json-response-returning-from-spring-rest-web-service
http://fasterxml.github.io/jackson-databind/javadoc/2.0.0/com/fasterxml/jackson/databind/ObjectMapper.html#addMixInAnnotations(java.lang.Class, java.lang.Class)
2013年10月25日金曜日
Spring 3.xでJSON型を返す@Controllerのクラスを実装する時に気をつけたい事
Spring 3.xで@Controllerのクラスを実装して、JSON型を返すRESTfulなサービスを作る時に気をつけたい事がある。ここは少しハマった。。。
まず仕様の抜粋から、
Underneath the covers, Spring MVC delegates to a HttpMessageConverter to perform the serialization. In this case, Spring MVC invokes a MappingJacksonHttpMessageConverter built on the Jackson JSON processor. This implementation is enabled automatically when you use the mvc:annotation-driven configuration element with Jackson present in your classpath.
つまり、Spring MVCはJSONの場合、JavaオブジェクトのシリアライズをMappingJacksonHttpMessageConverterに委譲する。その為には、applicationContext.xmlで<mvc:annotation-driven/>を追加しないと委譲が行われない。そして、これはメソッドの戻り値が@ResponseBodyで指定される。
そして、ハマったところ。。。
JSONにマップするクラスがgetter/setterを持っていない場合、HTTP 406のエラーコードが返されてうまくいかない。つまりJavaBeansでなければならないよう。おそらくMessageConverterの仕様でしょうが、ここがブラックボックスで分からない。。(?)
ということで、ここには気をつけましょう。
http://spring.io/blog/2010/01/25/ajax-simplifications-in-spring-3-0/
まず仕様の抜粋から、
Underneath the covers, Spring MVC delegates to a HttpMessageConverter to perform the serialization. In this case, Spring MVC invokes a MappingJacksonHttpMessageConverter built on the Jackson JSON processor. This implementation is enabled automatically when you use the mvc:annotation-driven configuration element with Jackson present in your classpath.
つまり、Spring MVCはJSONの場合、JavaオブジェクトのシリアライズをMappingJacksonHttpMessageConverterに委譲する。その為には、applicationContext.xmlで<mvc:annotation-driven/>を追加しないと委譲が行われない。そして、これはメソッドの戻り値が@ResponseBodyで指定される。
そして、ハマったところ。。。
JSONにマップするクラスがgetter/setterを持っていない場合、HTTP 406のエラーコードが返されてうまくいかない。つまりJavaBeansでなければならないよう。おそらくMessageConverterの仕様でしょうが、ここがブラックボックスで分からない。。(?)
ということで、ここには気をつけましょう。
- <mvc:annotation-driven/>
- jackson-mapper-asl.jar, jackson-xc.jarが必要
- @ResponseBody
- JavaBeans(?)パターンの実装 -------> 調査中
http://spring.io/blog/2010/01/25/ajax-simplifications-in-spring-3-0/
2013年10月22日火曜日
jQueryでAjaxを使ってJSONを扱うには
$.ajax({
url: "someUrl", // -----------------------> リクエストするURL
dataType: "json", // -----------------------> JSONがサーバーから返ってくる事を想定
success: function(response) {
// -----------------------> JSONをresponse.person.nameなどのような形で操作する
}
});
登録:
投稿 (Atom)