json格式轉換ruby,json格式轉換為對象

本文目錄一覽:

ruby+怎麼生成json文件

原始數據為csv文件:

1001,夾餅回鍋肉,1,份,28,豬肉、蒜苔、夾餅,

1002,香芋地瓜球,1,例,22,地瓜,

1003,腰果蝦仁,1,例,38,蝦仁、腰果、西芹,

1004,鮑汁茄花,1,例,18,,

要求:

生成dishes文件夾 內部生成 id號.json 文件, 並生成一個 id號 文件夾,裡面有一個images文件夾

用ruby原始方法:

File.open(“fake_dishes.csv”) do |file|

Dir.mkdir(“dishes”)

file.each_line do |line|

#puts line

dish_id = /^(\d\d\d\d)/.match(line) #正則匹配前四位數字id,並用id命名文件夾

#puts dish_id

json = File.open(“dishes/#{dish_id}.json”,”w+”)

json.puts(line) #僅生成一行信息 無法生成json格式

Dir.mkdir(“dishes/#{dish_id}”) #生成文件夾而已

Dir.mkdir(“dishes/#{dish_id}/images”) #生成文件夾而已

json.close

end

end

用ruby內置的csv方法:

require ‘csv’

Dir.mkdir(“dishes”)

CSV.open(‘fake_dishes.csv’, ‘r’) do |file|

json = File.open(“dishes/#{file[0]}.json”,”w+”)

json.puts( “

{

\”id\”: #{file[0]},

\”name\”: \”#{file[1]}\”,

\”categoryMenu\”: #{file[2]},

\”unit\”: \”#{file[3]}\”,

\”price\”: #{file[4]},

\”main\”: \”#{file[5]}\”,

\”adjuvant\”: \”#{file[6]}\”

}

“)

Dir.mkdir(“dishes/#{file[0]}”) #生成文件夾而已

Dir.mkdir(“dishes/#{file[0]}/images”) #生成文件夾而已

end

可以看出 用csv方法使得生成json更加簡單了!

json轉換格式

var results = [], arr = {} //arr就是你的json數組,results是轉後的結果;

for (var i in arr.success) {

var objs = arr.success[i];

for(var j in objs){

if(results[j]==undefined){

results[j]=[];

}

var obj = objs[j];

results[j].push(obj.t)

}

}

以下是運行結果,你的json代碼有重複的C1

json格式怎麼轉換

可以先轉換為json對象再進行轉換。

json格式都是使用鍵值對的結構,所以需要轉換為其他格式都可以對json對象進行遍歷處理。

另外可以使用正則表達式進行特定的轉換,但是一般不推薦這樣做。

如何將ruby的hash轉為json字符串

*nix系系統:

ES(Unix)

例子: IvS7aeT4NzQPM

說明:Linux或者其他linux內核系統中

長度: 13 個字符

描述:第1、2位為salt,例子中的’Iv’位salt,後面的為hash值

系統:MD5(Unix)

例子:$1$12345678$XM4P3PrKBgKNnTaqG9P0T/

說明:Linux或者其他linux內核系統中

長度:34個字符

描述:開始的$1$位為加密標誌,後面8位12345678為加密使用的salt,後面的為hash

加密算法:2000次循環調用MD5加密

系統:SHA-512(Unix)

例子:$6$12345678$U6Yv5E1lWn6mEESzKen42o6rbEm

說明:Linux或者其他linux內核系統中

長度: 13 個字符

描述:開始的$6$位為加密標誌,後面8位為salt,後面的為hash

加密算法:5000次的SHA-512加密

系統:SHA-256(Unix)

例子:$5$12345678$jBWLgeYZbSvREnuBr5s3gp13vqi

說明:Linux或者其他linux內核系統中

長度: 55 個字符

描述:開始的$5$位為加密標誌,後面8位為salt,後面的為hash

加密算法:5000次的SHA-256加密

系統:MD5(APR)

例子:$apr1$12345678$auQSX8Mvzt.tdBi4y6Xgj.

說明:Linux或者其他linux內核系統中

長度:37個字符

描述:開始的$apr1$位為加密標誌,後面8位為salt,後面的為hash

加密算法:2000次循環調用MD5加密

windows系統:

windows

例子:Admin:b474d48cdfc4974d86ef4d24904cdd91

長度:98個字符

加密算法:MD4(MD4(Unicode($pass)).Unicode(strtolower($username)))

mysql

系統:mysql

例子:606717496665bcba

說明:老版本的MySql中

長度:8字節(16個字符)

說明:包括兩個字節,且每個字的值不超過0x7fffffff

系統:MySQL5

例子:*E6CC90B878B948C35E92B003C792C46C58C4AF40

說明:較新版本的MySQL

長度:20字節(40位)

加密算法:SHA-1(SHA-1($pass))

其他系統:

系統:MD5(WordPress)

例子:$P$B123456780BhGFYSlUqGyE6ErKErL01

說明:WordPress使用的md5

長度:34個字符

描述:$P$表示加密類型,然後跟着一位字符,經常是字符‘B’,後面是8位salt,後面是就是hash

加密算法:8192次md5循環加密

系統:MD5(phpBB3)

說明:phpBB 3.x.x.使用

例子:$H$9123456785DAERgALpsri.D9z3ht120

長度:34個字符

描述:開始的$H$為加密標誌,後面跟着一個字符,一般的都是字符‘9’,然後是8位salt,然後是hash 值

加密算法:2048次循環調用MD5加密

系統:RAdmin v2.x

說明:Remote Administrator v2.x版本中

例子:5e32cceaafed5cc80866737dfb212d7f

長度:16字節(32個字符)

加密算法:字符用0填充到100字節後,將填充過後的字符經過md5加密得到(32位值)

md5加密

標準MD5

例子:c4ca4238a0b923820dcc509a6f75849b

使用範圍:phpBB v2.x, Joomla 的 1.0.13版本前,及其他cmd

長度:16個字符

其他的加salt及變形類似:

md5($salt.$pass)

例子:f190ce9ac8445d249747cab7be43f7d5:12

md5(md5($pass))

例子:28c8edde3d61a0411511d3b1866f0636

md5(md5($pass).$salt)

例子:6011527690eddca23580955c216b1fd2:wQ6

md5(md5($salt).md5($pass))

例子: 81f87275dd805aa018df8befe09fe9f8:wH6_S

md5(md5($salt).$pass)

例子: 816a14db44578f516cbaef25bd8d8296:1234

如何將json數據轉換為常見的數據格式

從json數組中得到java數組,可以對該數組進行轉化,如將JSONArray轉化為String型、Long型、Double型、Integer型、Date型等等。

分別採用jsonArray下的getString(index)、getLong(index)、getDouble(index)、getInt(index)等方法。

同樣,如果要獲取java數組中的元素,只需要遍歷該數組。

Java代碼 收藏代碼

/**

* 將json數組轉化為Long型

* @param str

* @return

*/

public static Long[] getJsonToLongArray(String str) {

JSONArray jsonArray = JSONArray.fromObject(str);

Long[] arr=new Long[jsonArray.size()];

for(int i=0;ijsonArray.size();i++){

arr[i]=jsonArray.getLong(i);

System.out.println(arr[i]);

}

return arr;

}

/**

* 將json數組轉化為String型

* @param str

* @return

*/

public static String[] getJsonToStringArray(String str) {

JSONArray jsonArray = JSONArray.fromObject(str);

String[] arr=new String[jsonArray.size()];

for(int i=0;ijsonArray.size();i++){

arr[i]=jsonArray.getString(i);

System.out.println(arr[i]);

}

return arr;

}

/**

* 將json數組轉化為Double型

* @param str

* @return

*/

public static Double[] getJsonToDoubleArray(String str) {

JSONArray jsonArray = JSONArray.fromObject(str);

Double[] arr=new Double[jsonArray.size()];

for(int i=0;ijsonArray.size();i++){

arr[i]=jsonArray.getDouble(i);

}

return arr;

}

/**

* 將json數組轉化為Date型

* @param str

* @return

*/

public static Date[] getJsonToDateArray(String jsonString) {

JSONArray jsonArray = JSONArray.fromObject(jsonString);

Date[] dateArray = new Date[jsonArray.size()];

String dateString;

Date date;

SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd”);

for (int i = 0; i jsonArray.size(); i++) {

dateString = jsonArray.getString(i);

try {

date=sdf.parse(dateString);

dateArray[i] = date;

} catch (Exception e) {

e.printStackTrace();

}

}

return dateArray;

}

public static void main(String[] args) {

JSONArray jsonLongs = new JSONArray();

jsonLongs.add(0, “111”);

jsonLongs.add(1, “222.25”);

jsonLongs.add(2, new Long(333));

jsonLongs.add(3, 444);

Long[] log=getJsonToLongArray(jsonLongs.toString());

for(int i=0;ilog.length;i++){

System.out.println(log[i]);

}

JSONArray jsonStrs = new JSONArray();

jsonStrs.add(0, “2011-01-01”);

jsonStrs.add(1, “2011-01-03”);

jsonStrs.add(2, “2011-01-04 11:11:11”);

Date[] d=getJsonToDateArray(jsonStrs.toString());

for(int i=0;id.length;i++){

System.out.println(d[i]);

}

}

/*結果如下:

* 111

* 222

* 333

* 444

*

* Sat Jan 01 00:00:00 CST 2011

* Mon Jan 03 00:00:00 CST 2011

* Tue Jan 04 00:00:00 CST 2011

*/

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/256325.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 12:40
下一篇 2024-12-15 12:40

相關推薦

發表回復

登錄後才能評論