{{id=3, name=zhangsan, phone=1592197****, chinaName=张三, address=成都, times=Tue Jan 16 15:17:04 CST 2018}}
这字符串都不符合json规范,如果硬是要转的话就只能处理成符合规范的json,str.Replace("=",":'").Replace(",","',").Replace("{{","{").Replace("}}","}");
///
/// 生成JSON字符串
///
/// 生成json的对象
/// 是否格式化
///
public static string ToJson(object obj, bool formatjson)
{
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
IsoDateTimeConverter idtc = new IsoDateTimeConverter();
idtc.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
JsonSerializer serializer = new JsonSerializer();
serializer.Converters.Add(idtc);
JsonWriter jw = new JsonTextWriter(sw);
if (formatjson)
{
jw.Formatting = Formatting.Indented;
}
serializer.Serialize(jw, obj);
//JsonConvert.SerializeObject(dt, idtc).ToString();
return sb.ToString();
}
调用这个方法就行了
String json = "{{id=3, name=zhangsan, phone=1592197****, chinaName=张三, address=成都, times=Tue Jan 16 15:17:04 CST 2018}}";
json = json.replace("{", "").replace("}","").trim();
Pattern r = Pattern.compile("([\\w]+)=([^,]+)([,]?)");
Matcher m = r.matcher(json);
json = m.replaceAll("\"$1\":\"$2\"$3");
json = "{" + json + "}";
System.out.println(json);
b. 如果是js,也是类似的进行一次替换,eg:
var json = "{{id=3, name=zhangsan, phone=1592197****, chinaName=张三, address=成都, times=Tue Jan 16 15:17:04 CST 2018}}";
json = json.replace("{{","").replace("}}","");
var reg = /([\w]+)=([^,]+)([,]?)/g;
var result = json.replace(reg,function(){
return arguments[1]+":'"+arguments[2]+"'"+arguments[3];
});
result = eval('({' + result + '})');
console.log(result);
如果是后台java代码:var str = "{{id=3, name=zhangsan, phone=1592197****, chinaName=张三, address=成都, times=Tue Jan 16 15:17:04 CST 2018}}";
var obj = JSON.parse(str)
如果是前台js : data=eval('('+data+')'); 用eval()函数就可以
var str = "{{id=3, name=zhangsan, phone=1592197****, chinaName=张三, address=成都, times=Tue Jan 16 15:17:04 CST 2018}}";
var obj = JSON.parse(str)
JSON.toJSONString("你要转的东西") 你试一下
var obj = eval('(' + str + ')');
var obj = str.parseJSON();
var obj = JSON.parse(str);
这只是String类字符串,含有=号的,不是规范的json数据。
{
"id":"3",
"name":"zhangsan",
"phone":"1592197****",
"chinaName":"张三",
"address":"成都",
"times":"Tue Jan 16 15:17:04 CST 2018"
}
JSON.toJSONString()
在网上有接送转换器啊
1>jQuery插件支持的转换方式:
复制代码 代码如下:
$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象
2>浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:
复制代码 代码如下:
JSON.parse(jsonstr); //可以将json字符串转换成json对象
JSON.stringify(jsonobj); //可以将json对象转换成json对符串
注:ie8(兼容模式),ie7和ie6没有JSON对象,推荐采用JSON官方的方式,引入json.js。
3>Javascript支持的转换方式:
eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号
注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。
4>JSON官方的转换方式:
http://www.json.org/提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;
可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。
var jsons = {};
jsons["id"] = 3;
jsons["name"] = zhangsan;
var str = '{{id=3,name=zhangsan,phone=1592197****,chinaName=张三,address=成都,times=Tue Jan 16 15:17:04 CST 2018}}';
//替换成json字符串格式
str = str.replace(new RegExp("=","g"),"\":\"").replace(new RegExp(",","g"),"\",\"").replace("{{","{\"").replace("}}","\"}");
//转成json对象
var json = JSON.parse(str);
这种处理治标不治本,最好后台组装好json格式字符串,前端直接用
可以试下fastjson试试
你可以把弄成一个字符串,将其封装JSONArray, 解析在封装为JSONObject 就完事了
先对你的字符串进行处理,转化为标准的json
JSONObject json = JSONObject.fromObject();
如果是只想转换类似的字符串,直接将“=”用'':'替换,“,”(中文的逗号)用“,”替换;
String 类的方法str.Replace(需要被替换的值, 替换的值)这个方法可以做到。
com.alibaba.fastjson.JSON.toJSON(object)