React NativeネットワークリクエストとJson-Stringパッケージ
3034 ワード
Serialization
ネットワーク要求
'use strict';
import React, {Component} from 'react';
class JsonUtil extends Component {
/*
* JSON
* */
static strToJson(data) {
return JSON.parse(data);
}
/*
* JSON
* */
static jsonToStr(data) {
return JSON.stringify(data);
}
/*
* map json
* */
static mapToJson(map) {
return JSON.stringify(JsonUtil.strMapToObj(map));
}
/*
* json map
* */
static jsonToMap(jsonStr) {
return JsonUtil.objToStrMap(JSON.parse(jsonStr));
}
/*
* map (map , )
* */
static strMapToObj(strMap) {
let obj = Object.create(null);
for (let [k, v] of strMap) {
obj[k] = v;
}
return obj;
}
/*
* Map
* */
static objToStrMap(obj) {
let strMap = new Map();
for (let k of Object.keys(obj)) {
strMap.set(k, obj[k]);
}
return strMap;
}
}
export default JsonUtil;
ネットワーク要求
'use strict';
import React, {Component} from 'react';
class NetUtil extends Component {
static DouB_Api = 'https://api.douban.com/v2/movie/top250?start=0&count=20';
/**
* post
* url :
* data : (Json )
* callback :
* */
static postJson(url, data, callback) {
var fetchOption = {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify(data)
};
fetch(url, fetchOption)
.then((response) => response.text())
.then((responseText) => {
callback(JSON.parse(responseText))
})
.done();
}
/**
* get
* url :
* callback :
*/
static get(url, callback) {
var fetchOptions = {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
}
};
fetch(url, fetchOptions)
.then((response) => response.text())
.then((responseText) => {
callback(JSON.parse(responseText));
}).done();
}
}
/**
* put
* url :
* data : (Json )
* callback :
* */
static putJson(url, data, callback) {
var fetchOption = {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
// LeanCloud
'X-LC-Id': 'M401fErHUPYhDKmgp0wjqVRX-gzGzoHsz',
'X-LC-Key': 'Jqnvt1Lmt34vQh1JDRUpRAqq'
},
body: JSON.stringify(data)
};
fetch(url, fetchOption)
.then((response) => response.text())
.then((responseText) => {
callback(JSON.parse(responseText))
})
.done();
}
export default NetUtil;