我有一个JSON
对象,如下所示:
{
"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9",
"user":{
"pk":17,
"username":"user1",
"email":"user1@gmail.com",
"first_name":"",
"last_name":""
}
}
我正在尝试从中获得两个JSON
对象;令牌和用户。我尝试了两种不同的方法,但是都失败了:
//response.body().string() is the above json object
JSONArray jsonArray = new JSONArray(response.body().string());
jsonObjectRoot = new JSONObject(response.body().string());
有人可以让我知道如何将其拆分为两个JSON
对象吗?
答案 0 :(得分:1)
您可以使用以下方式解析json字符串
var obj = JSON.parse(jsonString);
您可以通过简单地寻址来过滤json对象的子部分
var token = obj.token;
var user = obj.user;
答案 1 :(得分:0)
您可以按以下方式拆分它:
"SELECT Release_Name FROM Lucas_t_db WHERE Published_Time > SUBDATE( CURRENT_TIME, INTERVAL 90 MINUTE) AND Post_ID IS NOT NULL AND Post_status IS NULL
上面的代码显示:
AND Post_status IS NULL
答案 2 :(得分:0)
更安全/更清洁的方法是创建一个POJO,然后使用Jackson将您的JSON反序列化为它。您的pojo:
public class MyObject {
String token;
User user;
static class User {
int pk;
String username;
String email;
String first_name;
String last_name;
}
}
然后,当您想反序列化时:
import com.fasterxml.jackson.databind.ObjectMapper;
和
ObjectMapper mapper = new ObjectMapper();
MyObject myObject = mapper.readValue(jsonString, MyObject.class);
String token = myObject.token;
User user = myObject.user;
...
答案 3 :(得分:0)
我最近遇到了同样的情况,我使用了以下对我有用的代码:
JSONObject jo1 = new JSONObject(output);
JSONObject tokenObject = new JSONObject();
tokenObject.put("token", jo1.get("token"));
JSONObject userObject = new JSONObject();
userObject.put("user", jo1.get("user"));
在这里,我正在创建一个新的空JSONObject,然后将从原始对象中检索到的对象放在新创建的JSONObject中。
您还可以仅通过sysout验证输出:
System.out.println("token:" + tokenObject.get("token"));
System.out.println("user:" + userObject.get("user"));
在我的情况下输出:
token::eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
user:{"last_name":"","pk":17,"first_name":"","email":"user1@gmail.com","username":"user1"}
答案 4 :(得分:0)
是的。它是一个 JSON 字符串。 像这样使用
Option Explicit
Public Sub rechnen_mod()
Dim mp_y() As Variant
Dim mp_r() As Variant
Dim aud_y() As Variant
Dim soc_r() As Variant
Dim arrResult_P() As Variant
Dim arrResult_Q() As Variant
Dim iLastRow As Integer
Dim iSizeArrays As Integer
Dim iIndexSearch As Integer
With ThisWorkbook.Worksheets("MRP score template")
' Find last row of table, replace it with fixed value if you prefer
iLastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row
' Store data in arrays
mp_y = .Range("M11", "M" & iLastRow).Value
mp_r = .Range("N11", "N" & iLastRow).Value
aud_y = .Range("P11", "P" & iLastRow).Value
soc_r = .Range("Q11", "Q" & iLastRow).Value
' Calculate size of arrays
iSizeArrays = UBound(mp_y) - LBound(mp_y) + 1
' ReDim result arrays according to iSizeArrays
ReDim arrResult_P(1 To iSizeArrays)
ReDim arrResult_Q(1 To iSizeArrays)
' Calculate result values
For iIndexSearch = 1 To iSizeArrays
arrResult_P(iIndexSearch) = mp_y(iIndexSearch, 1) * aud_y(iIndexSearch, 1)
arrResult_Q(iIndexSearch) = mp_r(iIndexSearch, 1) * soc_r(iIndexSearch, 1)
Next iIndexSearch
' Write results in the worksheet
.Range("P11", "P" & iLastRow) = Application.WorksheetFunction.Transpose(arrResult_P)
.Range("Q11", "Q" & iLastRow) = Application.WorksheetFunction.Transpose(arrResult_Q)
End With
End Sub
jObj 现在将包含 json 对象。