① Jquery怎么将一个object对象转换成json字符串
");�0�2}�0�2});运行的结果每次都是:失败,请稍后再试!没有跳转到后台的函数。
我调试了,就是 jQuery.toJSON(obj) 的问题,去掉它就可以调到后台的函数里。
发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。必须为"{键:值}"格式。如果为数组,jQuery 将自动为不同值对应同一个名称。如 {foo:["bar1", "bar2"]} 转换为 '&foo=bar1&foo=bar2'。 如果值是一个数组( Array ), jQuery将在 多个连续的值具有相同的键值的基础上建立的传统设置
这里不需要转化啊,把你的代码改成
data:obj,试试
② JAVA中JSONObject
private static String castToJson(Object obj) {
if (obj == null) {
return "null";
} else if (obj instanceof Boolean) {
return obj.toString();
} else if (obj instanceof Integer || obj instanceof Long
|| obj instanceof Float || obj instanceof Double
|| obj instanceof Short || obj instanceof java.math.BigInteger
|| obj instanceof java.math.BigDecimal) {
return obj.toString();
} else if (obj instanceof String) {
String v = (String) obj;
v = v.replaceAll("\\\\", "\\\\\\\\");
v = v.replaceAll("\n", "\\\\n");
v = v.replaceAll("\r", "\\\\r");
v = v.replaceAll("\"", "\\\\\"");
v = v.replaceAll("'", "\\\\\'");
return "\"" + v + "\"";
} else if (obj instanceof java.sql.Date) {
java.text.SimpleDateFormat df = new java.text.SimpleDateFormat(
"yyyy-MM-dd");
java.sql.Date v = (java.sql.Date) obj;
String s = df.format(new java.util.Date(v.getTime()));
return "\"" + s + "\"";
} else if (obj instanceof java.util.Date) {
java.text.SimpleDateFormat df = new java.text.SimpleDateFormat(
"yyyy-MM-dd");
java.util.Date v = (java.util.Date) obj;
String s = df.format(v);
return "\"" + s + "\"";
} else if (obj instanceof java.sql.Timestamp) {
java.text.SimpleDateFormat df = new java.text.SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
java.sql.Timestamp v = (java.sql.Timestamp) obj;
String s = df.format(new java.util.Date(v.getTime()));
return "\"" + s + "\"";
} else {
return null;
}
}
还是用这个自己手都转看着放心,他们那个用着不舒服
③ 通过springmvc发送页面的jsonObject.toJSONString(),为什么有转义符,能去掉吗
response.setContentType("application/json");
response.setHeader("Cache-Control","no-store");
PrintWriterout=response.getWriter();
out.write(reJSON);
上面代码可以写在controller中
reJSON是你要发送的字符串
④ c#怎么把对象转换成json字符串
DoNet2.0 需要借助于Newtonsoft.Json.dll
代码
using System;
using System.IO;
using System.Text;
using Newtonsoft.Json;
namespace OfflineAcceptControl.UCTools
{
public class JsonTools
{
// 从一个对象信息生成Json串
public static string ObjectToJson(object obj)
{
return JavaScriptConvert.SerializeObject(obj);
}
// 从一个Json串生成对象信息
public static object JsonToObject(string jsonString, object obj)
{
return JavaScriptConvert.DeserializeObject(jsonString, obj.GetType());
}
}
}
Donet3.5自带了DLL处理json串
注意引用:System.Runtime.Serialization,System.ServiceModel.Web
代码
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
namespace CrjIIOfflineAccept.CrjIITools
{
public class JsonTools
{
// 从一个对象信息生成Json串
public static string ObjectToJson(object obj)
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
MemoryStream stream = new MemoryStream();
serializer.WriteObject(stream, obj);
byte[] dataBytes = new byte[stream.Length];
stream.Position = 0;
stream.Read(dataBytes, 0, (int)stream.Length);
return Encoding.UTF8.GetString(dataBytes);
}
// 从一个Json串生成对象信息
public static object JsonToObject(string jsonString, object obj)
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
MemoryStream mStream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
return serializer.ReadObject(mStream);
}
}
}
⑤ Gson对象转json时,属性值不存在时转成的null问题
为什么要用
引号
引起来,引起来的话就是String类型了,当将json格式转换成对象的时候,发现null是用引号引起来的话就会给对象name赋值为“null”字符串了,这样数据就不对头了。当object转换为json的时候"name":null是可以辨别的,读出来还是空值,不会影响什么,为什么非这样做捏?
⑥ JSON.toJSONString 下划线丢失
你是在客户端处理的时候出问题,还是在服务端处理的时候出问题?我在客户端试了一下没有问题啊:
List<Map<String,Object>>list=newArrayList<Map<String,Object>>();
Map<String,Object>map=newHashMap<String,Object>();
map.put("_parentId","1111");
list.add(map);
StringaString=JSON.toJSONString(list);
System.out.println(aString);
输出[{"_parentId":"1231"}]
⑦ JSONObject.parseObject保留空字段
JSONObject.parseObject方法并不会把值为null的字段给去掉,你可以获取一下看看。但是为什么打印的时候没有呢?这是以为JSONObject.toJSONString方法默认不输出值为null的字段,设置一下参数再打印就可以了。主要代码如下:
json字符串:{"Total":0,"Data":null,"Code":200},定义为jsonStr吧。
JSONObjectjsonObject=JSONObject.parseObject(jsonStr);
System.out.println("Data::"+jsonObject.get("Data"));//此处控制台是可以打印出来data的值的。
str=JSONObject.toJSONString(jsonObject,SerializerFeature.WriteMapNullValue);
这篇博客写了SerializerFeature属性对应的值和含义网页链接
⑧ jsonobject 为什么会有转义字符
一:解析普通json
1:不带转化字符
格式{"type":"ONLINE_SHIPS","message":{"currentTime":1400077615368,"direction":0,"id":1,"latitude":29.5506,"longitude":106.6466}}
JSONObject jsonObject = new JSONObject(jsonstr).getJSONObject("message");
System.out.println("currentTime:"+jsonObject.get("currentTime"));
System.out.println("direction:"+jsonObject.get("direction"));
System.out.println("latitude:"+jsonObject.get("latitude"));
System.out.println("longitude:"+jsonObject.get("longitude"));
jsonarray
JSONObject jo = ja.getJSONArray("cargoList").getJSONObject(0);
2:带转义字符的json格式
{"type":"ONLINE_SHIPS","message":"{\"currentTime\":1400077615368,\"direction\":0,\"id\":1,\"latitude\":29.5506,\"longitude\":106.6466}"}
其实也很简单,先把它转化成字符串就可以了
JSONObject jsonObject = new JSONObject(jsonstr);
//先通过字符串的方式得到,转义字符自然会被转化掉
String jsonstrtemp = jsonObject.getString("message");
System.out.println("message:"+jsonstrtemp);
jsonObject = new JSONObject(jsonstrtemp);
System.out.println("currentTime:"+jsonObject.get("currentTime"));
System.out.println("direction:"+jsonObject.get("direction"));
System.out.println("latitude:"+jsonObject.get("latitude"));
System.out.println("longitude:"+jsonObject.get("longitude"));
二:遍历Json对象
JSONObject ports = ja.getJSONObject("ports");
Iterator<String> keys = ports.keys();
while(keys.hasNext()){
String key=keys.next();
String value = ports.getString(key);
}
三:使用Gjson,json与对象相互转化
使用Gson轻松将java对象转化为json格式
String json = gson.toJson(Object);//得到json形式的字符串
User user = gson.fromJson(json,User.class);//得到对象
转化成list
import java.util.List;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.lc.function.Action;
import com.lc.models.Groups;
public class MapSearch {
private void ParseData(String _data)
{
Gson gson = new Gson();
List<Groups> ps = gson.fromJson(_data, new TypeToken<List<Groups>>(){}.getType());
System.out.println(ps.get(0).getGroup_name());
}
}
⑨ Jquery怎么将一个object对象转换成json字符串
jquery中没有这样的方法,只有将字符串转换为对象的方法:jQuery.parseJSON( json)。 如果将object对象转换为json字符串,在现代浏览器中可以用JSON.stringify()这个原生方法。在IE6/7以及IE8兼容模式中,可以先引用https://github.com/douglascrockford/JSON-js/blob/master/json2.js之后再采用JSON.stringify()。
⑩ Jquery怎么将一个object对象转换成json字符串
JSON.stringify(要转换的object对象)。此方法返回的就是一个类似于 {“name”:"张三","age":18} 这样的字符串