-
當前位置:首頁 > 創(chuàng)意學院 > 營銷推廣 > 專題列表 > 正文
如何把對象弄成s(如何把對象弄成第四愛)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于如何把對象弄成s的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
ChatGPT國內(nèi)免費在線使用,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com
本文目錄:
一、如何將 javascript 對象轉(zhuǎn)換成 json字符串
javascript 對象轉(zhuǎn)換成 json字符串[js對象轉(zhuǎn)換成json字符串]
使用$.toJSON(Object)就可以轉(zhuǎn)換了,轉(zhuǎn)換之前先引入jquery.json.js
/*
* jQuery JSON Plugin
* version: 2.1 (2009-08-14)
*
* This document is licensed as free software under the terms of the
* MIT License: http://www.opensource.org/licenses/mit-license.php
*
* Brantley Harris wrote this plugin. It is based somewhat on the JSON.org
* website's http://www.json.org/json2.js, which proclaims:
* "NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.", a sentiment that
* I uphold.
*
* It is also influenced heavily by MochiKit's serializeJSON, which is
* copyrighted 2005 by Bob Ippolito.
*/
(function($) {
/** jQuery.toJSON( json-serializble )
Converts the given argument into a JSON respresentation.
If an object has a "toJSON" function, that will be used to get the representation.
Non-integer/string keys are skipped in the object, as are keys that point to a function.
json-serializble:
The *thing* to be converted.
**/
$.toJSON = function(o)
{
if (typeof(JSON) == 'object' && JSON.stringify)
return JSON.stringify(o);
var type = typeof(o);
if (o === null)
return "null";
if (type == "undefined")
return undefined;
if (type == "number" || type == "boolean")
return o + "";
if (type == "string")
return $.quoteString(o);
if (type == 'object')
{
if (typeof o.toJSON == "function")
return $.toJSON( o.toJSON() );
if (o.constructor === Date)
{
var month = o.getUTCMonth() + 1;
if (month < 10) month = '0' + month;
var day = o.getUTCDate();
if (day < 10) day = '0' + day;
var year = o.getUTCFullYear();
var hours = o.getUTCHours();
if (hours < 10) hours = '0' + hours;
var minutes = o.getUTCMinutes();
if (minutes < 10) minutes = '0' + minutes;
var seconds = o.getUTCSeconds();
if (seconds < 10) seconds = '0' + seconds;
var milli = o.getUTCMilliseconds();
if (milli < 100) milli = '0' + milli;
if (milli < 10) milli = '0' + milli;
return '"' + year + '-' + month + '-' + day + 'T' +
hours + ':' + minutes + ':' + seconds +
'.' + milli + 'Z"';
}
if (o.constructor === Array)
{
var ret = [];
for (var i = 0; i < o.length; i++)
ret.push( $.toJSON(o[i]) || "null" );
return "[" + ret.join(",") + "]";
}
var pairs = [];
for (var k in o) {
var name;
var type = typeof k;
if (type == "number")
name = '"' + k + '"';
else if (type == "string")
name = $.quoteString(k);
else
continue; //skip non-string or number keys
if (typeof o[k] == "function")
continue; //skip pairs where the value is a function.
var val = $.toJSON(o[k]);
pairs.push(name + ":" + val);
}
return "{" + pairs.join(", ") + "}";
}
};
/** jQuery.evalJSON(src)
Evaluates a given piece of json source.
**/
$.evalJSON = function(src)
{
if (typeof(JSON) == 'object' && JSON.parse)
return JSON.parse(src);
return eval("(" + src + ")");
};
/** jQuery.secureEvalJSON(src)
Evals JSON in a way that is *more* secure.
**/
$.secureEvalJSON = function(src)
{
if (typeof(JSON) == 'object' && JSON.parse)
return JSON.parse(src);
var filtered = src;
filtered = filtered.replace(/\\["\\\/bfnrtu]/g, '@');
filtered = filtered.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']');
filtered = filtered.replace(/(?:^|:|,)(?:\s*\[)+/g, '');
if (/^[\],:{}\s]*$/.test(filtered))
return eval("(" + src + ")");
else
throw new SyntaxError("Error parsing JSON, source is not valid.");
};
/** jQuery.quoteString(string)
Returns a string-repr of a string, escaping quotes intelligently.
Mostly a support function for toJSON.
Examples:
>>> jQuery.quoteString("apple")
"apple"
>>> jQuery.quoteString('"Where are we going?", she asked.')
"\"Where are we going?\", she asked."
**/
$.quoteString = function(string)
{
if (string.match(_escapeable))
{
return '"' + string.replace(_escapeable, function (a)
{
var c = _meta[a];
if (typeof c === 'string') return c;
c = a.charCodeAt();
return '\\u00' + Math.floor(c / 16).toString(16) + (c % 16).toString(16);
}) + '"';
}
return '"' + string + '"';
};
var _escapeable = /["\\\x00-\x1f\x7f-\x9f]/g;
var _meta = {
'\b': '\\b',
'\t': '\\t',
'\n': '\\n',
'\f': '\\f',
'\r': '\\r',
'"' : '\\"',
'\\': '\\\\'
};
})(jQuery);
二、如何將一個object 對象轉(zhuǎn)換為他原來的類型
本文將對常用的轉(zhuǎn)換方法進行一個總結(jié)。常用的方法有Object.toString(),(String)要轉(zhuǎn)換的對象,String.valueOf(Object)等。下面對這些方法一一進行分析。方法1:采用 Object.toString()方法 請看下面的例子:
Object object = getObject();System.out.println(object.toString());在這種使用方法中,因為java.lang.Object類里已有public方法.toString(),所以對任何嚴格意義上的java對象都可以調(diào)用此方法。但在使用時要注意,必須保證object不是null值,否則將拋出NullPointerException異常。采用這種方法時,通常派生類會覆蓋Object里的toString()方法。方法2:采用類型轉(zhuǎn)換(String)object方法 這是標準的類型轉(zhuǎn)換,將object轉(zhuǎn)成String類型的值。使用這種方法時,需要注意的是類型必須能轉(zhuǎn)成String類型。因此最好用instanceof做個類型檢查,以判斷是否可以轉(zhuǎn)換。否則容易拋出CalssCastException異常。此外,需特別小心的是因定義為Object 類型的對象在轉(zhuǎn)成String時語法檢查并不會報錯,這將可能導致潛在的錯誤存在。這時要格外小心。如:Object obj = new Integer(100);String strVal = (String)obj;在運行時將會出錯,因為將Integer類型強制轉(zhuǎn)換為String類型,無法通過。但是,Integer obj = new Integer(100);String strVal = (String)obj;如是格式代碼,將會報語法錯誤。此外,因null值可以強制轉(zhuǎn)換為任何java類類型,(String)null也是合法的。方法3:采用String.valueOf(Object) String.valueOf(Object)的基礎是Object.toString()。但它與Object.toString()又有所不同。在前面方法1的分析中提到,使用第一種時需保證不為null。但采用第三種方法時,將不用擔心object是否為null值這一問題。為了便于說明問題,我們來分析一下相關(guān)的源代碼。Jdk里String.valueOf(Object)源碼如下:/*** Returns the string representation of the Object argument.** @param obj an Object.* @return if the argument is null, then a string equal to* "null"; otherwise, the value of* obj.toString() is returned.* @see java.lang.Object.toString()*/ public static String valueOf(Object obj) { return (obj == null) ? "null" : obj.toString();}從上面的源碼可以很清晰的看出null值不用擔心的理由。但是,這也恰恰給了我們隱患。我們應當注意到,當object為null時,String.valueOf(object)的值是字符串"null",而不是null!在使用過程中切記要注意。試想一下,如果我們用System.out.println(String.valueOf(null));System.out.println(null);我們看到的輸出將是一模一樣的東西:null,但它們意義相同嗎?判斷一個字符串為空 s為一個字符串,判斷它為空的方法:if (null==s ||"".equals(s)) { ...... } 注意:這里的null==s和"".equals(s)不要寫成s==null和s.equals(s),因為""這個值是已經(jīng)確定的,預知的,而s是未知的,所以用得不小心的時候s.equals("")就會出現(xiàn)nullpoint異常。在這里雖然不會,因為前面有if(null==s),但是習慣跟在那里使用沒有關(guān)系的。不一定的equals方法,包括其它很多處理,如果用確定的值處理問題會比未確定的處理少很多bug。 String類型和Date類型的相互轉(zhuǎn)換 將String轉(zhuǎn)換為Date: String s="2007-06-21 10:50:50";java.text.SimpleDateFormat FormatDate = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); java.util.Date date = FormatDate.parse(s);//轉(zhuǎn)成Date將Date轉(zhuǎn)換為String String.valueOf(date);Java如何獲得系統(tǒng)時間最近在學習Java,經(jīng)常在工作中遇到一些小問題,Baidu之后,找到問題的解決方法,要記錄下來呦,要不然,憑我的腦子,肯定不久就忘記了。呵呵。想要獲得系統(tǒng)時間,不要日期,只要時間,可是Baidu出來的都是帶著日期和時間案的,沒有單獨只有時間的例子。琢磨了一會之后,找到問題的解決方法。 import java.util.Date;import java.text.DateFormat; Date now = new Date(); // Date()是java.util.Date類的構(gòu)造方法 DateFormat d = DateFormat.getTimeInstance(); //getTimeInstance()獲得的是不帶日期的系統(tǒng)時間 String str = d.format(now); System.out.println("Today is " + str);//輸出 注:1.Date now = new Date(); 這句中的Date()是java.util.Date類的構(gòu)造方法,而不是java.sql里的類,所以要在前面加上import java.util.Date;而不是 import java.sql.Date;這里曾經(jīng)因為犯了這種低級錯誤而導致編譯出錯。三、Java程序編寫 在類TestString的主方法中創(chuàng)建String類對象s(Hello
String s = new String("Hello World!");// String s = "Hello World!"; 兩種方式
System.out.println("s的長度為:"+s.length());
System.out.println("s的第二個字符為:"+s.charAt(2));//輸出的為l,參數(shù)是從0開始的
System.out.println("s小寫轉(zhuǎn)大寫:"+s.toUpperCase());
s = s+" How are you?";
System.out.println("連接后字符:"+s);
希望采納!
四、OC內(nèi)存管理問題。來大神。 當一個類的成員變量是另一個類的對象指針的時候,如何來寫這個成員變量的s
怎么會崩呢
Dog * dog1 = [[Dog alloc]init]; // dog1 引用計數(shù)為1[person setDog:dog1]; // dog1 在set方法中retain一次,引用計數(shù)為2
[person setDog:dog2]; // dog1被release一次,引用計數(shù)為1
[person setDog:dog1]; // dog1引用計數(shù)不為0,沒有調(diào)用Dog的dealloc方法,沒有被銷毀
不會崩啊
就算當person的實例的引用計數(shù)為0了,調(diào)用了person的dealloc,在person的dealloc里面,dog被release一次,這時候dog的引用計數(shù)才變?yōu)?,也不會被dealloc
以上就是關(guān)于如何把對象弄成s相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀: