前端傳入JSON陣列轉換物件存入資料庫

2021-08-19 13:19:33 字數 1471 閱讀 5152

前端有乙個頁面,一條資料對應乙個後台物件,多條資料就是對應多個物件,用的是json陣列格式傳過來到後台,我剛開始準備用list的方式接收,但是報錯,說不支援,不知道為什麼,多上傳的時候也是這樣可以的,既然不支援,那專案還是要繼續,用fastjson來轉換

1. 我是springboot專案,在pom.xml中加入相關的依賴

com.alibabagroupid>

fastjsonartifactid>

1.2.44version>

dependency>

2. 寫**
public

void

add(string vo, string id) else

if (toolarr == null)

for (int j = 0; j < toolarr.size(); j++) else }}

}

前端傳入引數
description

:"測試"

fieldtype

:"varchar"

name

:"測試"

toolarr

:array(2)0:

1:length:2

__proto__

:array(0)

type

:"basin_code"

說明

引數中string的物件vo就是前端傳的json陣列,建立jsonarray物件轉換陣列,迴圈這個物件長度,建立jsonobject物件,getjsonobject(i)建立多個物件,因為前端傳的不止一條資料,多條資料那就是多個物件,接著將準備好的資料庫實體類例項化,用object.getstring的方法,獲取前端json陣列的值,塞到實體類中

但是,細心的同學會發現,這個json陣列裡又嵌入了一層陣列,toolarr,沒錯,因為頁面是又兩個集合的,前端將兩個集合做在了一塊,乙個集合裡套著一層集合,所以後台要多做一層迴圈,按照轉換的思路,多建立乙個jsonarrayjsonobject物件,再做一層迴圈,將對應的實體類所需要的值set進去

注意由於前端頁面的修改和新增都是在同乙個頁面,所以我這裡做了if判斷,如果有帶id的,是修改,沒有帶id的,是新增

中午搞了乙個烏龍,什麼烏龍?

把第二個迴圈的順序寫反了,他要單獨做操作,不應該寫在if裡面,寫在最後,導致插入兩條一模一樣得資料

tools物件new錯位置了,導致了每次新增插入資料庫的時候報錯,說主鍵重複的錯誤,應該在第二個迴圈裡面new,建立兩個不同物件在第二個迴圈中做兩次存入操作(因為本來就要存多條)

ios 把陣列物件轉成json字串存起來

1第一步是我們獲取資料源 一般我們都是從介面請求資料 nsarray subcolumnsarray nil nsdictionary dict nsjsonserialization jsonobjectwithdata data options nsjsonreadingmutableconta...

json 字串 物件 物件陣列 之間的轉換

首先必須我們都知道 伺服器與客戶端 之間的 請求互動 所傳輸的資料大部分都是json格式。不僅如此,後端其實也可以向傳送http請求,獲取外部api提供的資料。這時後端拿到就是json格式的資料了。對於json資料的處理,我使用的是 fastjson。這mvn專案可以使用 com.alibaba f...

TP5 JSON物件陣列轉換為普通陣列

於 使用tp5框架做專案時,對於資料的查詢返回的都是物件,雖然也可以當做普通的陣列進行遍歷進而進行後續處理,但這種形式直接扔給前端或者我想在返回的結果中臨時增加乙個資料字段,此時這種json物件陣列形式就行了,臨時的資料字段在物件陣列裡加不進去,所以轉換為普通的陣列後才能更方便的進行處理。publi...