f
This commit is contained in:
@@ -51,9 +51,54 @@ func ProcessQYGLJ0Q1Request(ctx context.Context, params []byte, deps *processors
|
|||||||
return nil, errors.Join(processors.ErrSystem, err)
|
return nil, errors.Join(processors.ErrSystem, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
respBytes, err := json.Marshal(data)
|
// 解析响应中的JSON字符串
|
||||||
|
parsedResp, err := ParseJsonResponse(data)
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.Join(processors.ErrSystem, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
respBytes, err := json.Marshal(parsedResp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Join(processors.ErrSystem, err)
|
return nil, errors.Join(processors.ErrSystem, err)
|
||||||
}
|
}
|
||||||
return respBytes, nil
|
return respBytes, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ParseJsonResponse 直接解析JSON响应数据
|
||||||
|
// data: 接口返回的数据
|
||||||
|
// Returns: 解析后的数据
|
||||||
|
func ParseJsonResponse(data interface{}) (interface{}, error) {
|
||||||
|
return RecursiveParse(data)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RecursiveParse 递归解析JSON数据
|
||||||
|
func RecursiveParse(data interface{}) (interface{}, error) {
|
||||||
|
switch v := data.(type) {
|
||||||
|
case string:
|
||||||
|
var parsed interface{}
|
||||||
|
if err := json.Unmarshal([]byte(v), &parsed); err == nil {
|
||||||
|
return RecursiveParse(parsed)
|
||||||
|
}
|
||||||
|
return v, nil
|
||||||
|
case map[string]interface{}:
|
||||||
|
for key, val := range v {
|
||||||
|
parsed, err := RecursiveParse(val)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
v[key] = parsed
|
||||||
|
}
|
||||||
|
return v, nil
|
||||||
|
case []interface{}:
|
||||||
|
for i, item := range v {
|
||||||
|
parsed, err := RecursiveParse(item)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
v[i] = parsed
|
||||||
|
}
|
||||||
|
return v, nil
|
||||||
|
default:
|
||||||
|
return v, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -42,9 +42,54 @@ func ProcessQYGLUY3SRequest(ctx context.Context, params []byte, deps *processors
|
|||||||
return nil, errors.Join(processors.ErrSystem, err)
|
return nil, errors.Join(processors.ErrSystem, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
respBytes, err := json.Marshal(data)
|
// 解析响应中的JSON字符串
|
||||||
|
parsedResp, err := ParseJsonResponse(data)
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.Join(processors.ErrSystem, err)
|
||||||
|
}
|
||||||
|
|
||||||
|
respBytes, err := json.Marshal(parsedResp)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Join(processors.ErrSystem, err)
|
return nil, errors.Join(processors.ErrSystem, err)
|
||||||
}
|
}
|
||||||
return respBytes, nil
|
return respBytes, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ParseJsonResponse 直接解析JSON响应数据
|
||||||
|
// data: 接口返回的数据
|
||||||
|
// Returns: 解析后的数据
|
||||||
|
func ParseJsonResponse(data interface{}) (interface{}, error) {
|
||||||
|
return RecursiveParse(data)
|
||||||
|
}
|
||||||
|
|
||||||
|
// RecursiveParse 递归解析JSON数据
|
||||||
|
func RecursiveParse(data interface{}) (interface{}, error) {
|
||||||
|
switch v := data.(type) {
|
||||||
|
case string:
|
||||||
|
var parsed interface{}
|
||||||
|
if err := json.Unmarshal([]byte(v), &parsed); err == nil {
|
||||||
|
return RecursiveParse(parsed)
|
||||||
|
}
|
||||||
|
return v, nil
|
||||||
|
case map[string]interface{}:
|
||||||
|
for key, val := range v {
|
||||||
|
parsed, err := RecursiveParse(val)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
v[key] = parsed
|
||||||
|
}
|
||||||
|
return v, nil
|
||||||
|
case []interface{}:
|
||||||
|
for i, item := range v {
|
||||||
|
parsed, err := RecursiveParse(item)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
v[i] = parsed
|
||||||
|
}
|
||||||
|
return v, nil
|
||||||
|
default:
|
||||||
|
return v, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user