① 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} 這樣的字元串