
var str = '[("id": 1, "ip": 2, "ii": "qq")]';
var re = /\s+/g;
var str1 = strsubstring(2);
var str2 = str1substring(0, str1length - 2);
str2 = str2replace(re,"");
var arr = str2split(',');
var obj = {};
arrforEach((v, i) => {
var item = vsplit(':');
obj[JSONparse(item[0])] = JSONparse(item[1]);
})
consolelog(obj);
大概是这样,或者可能会有所改动。
在开发过程中遇到一个问题:服务器经过排序返回后的字符串数据在使用fastjson解析后,数据顺序发生了变化,这个问题也就是:使用fastjson解析数据后导致顺序改变或者说是如何保持String字符串转为json对象时顺序不变
解决方法:
方法一:解析时增加参数不调整顺序(亲测使用有效)
JSONObject respondeBodyJson = JSONObjectparseObject(str, FeatureOrderedField);
方法二:配置有序对象
JSONObjectparseObject(str,LinkedHashMapclass,FeatureOrderedField);
方法三:初始化json对象为有序对象
JSONObject retObj = new JSONObject(true);
方法四:使用Gson解析
JsonObject returnData = new JsonParser()parse(str)getAsJsonObject();
这样生成的json对象就与放入数据时保持一致了
注意:引入的fastjson相关的jar包版本要高于123,因为FeatureOrderedField是从123开始的
1List list = new ArrayList。
2listadd(测试1)。
3listadd(测试2)。
4listadd(测试3)。
5JSONArray jsonArray JSONArrayfromObject(list)。
6Systemoutprintln(jsonArraytoString。
7这边要导包需要jsonlibjarnetsfjsonJSONArray。
用java初始化一个list,向list中添加值,并输出list中的值:
1import javautil
2public class
3 public static void main(String arg[])
4 List lis = new Arraylist
5 lisadd("wo")
6 lisadd("shi")
7 lisadd("wang")
8for(int i=0;i<lissize(); i++)
9 Systemoutprint(lisget(i)+"")
以上就是关于后台获取数据,前端js转换成固定格式的json全部的内容,包括:后台获取数据,前端js转换成固定格式的json、json.parseobject()的set方法设置顺序、js怎么把list转换json字符串等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)