Dart: 모든 요소가 인용된 맵을 JSON으로 변환
다트에서 JSON으로 폼을 시리얼화한 후 잭슨을 사용하여 스프링 MVC 백엔드에 게시하고 JSON을 시리얼 해제하려고 합니다.
다트에서 JSON을 출력하면 다음과 같은 결과가 나옵니다.
{firstName: piet, lastName: venter}
잭슨은 이 형식의 데이터가 마음에 들지 않습니다.상태 400이 반환되고The request sent by the client was syntactically incorrect.
모든 필드에 따옴표를 붙이면 잭슨이 데이터를 수락하고 답변을 받습니다.
{"firstName": "piet", "lastName": "venter"}
다트에서는, 내가 조립한다.Map<String, String> data = {};
모든 양식 필드를 루프하여data.putIfAbsent(input.name, () => input.value);
내가 전화했을 때data.toString()
견적되지 않은 JSON을 받았습니다.JSON은 무효라고 생각됩니다.
만약 내가import 'dart:convert' show JSON;
그리고 시도하다JSON.encode(data).toString();
인용되지 않은 동일한 JSON을 받습니다.
이중 따옴표를 수동으로 추가하는 것은 효과가 있는 것 같습니다.
data.putIfAbsent("\"" + input.name + "\"", () => "\"" + input.value + "\"");
자바 쪽에는 로켓 과학이 없습니다.
@Controller
@RequestMapping("/seller")
@JsonIgnoreProperties(ignoreUnknown = true)
public class SellerController {
@ResponseBody
@RequestMapping(value = "/create", method = RequestMethod.POST, headers = {"Content-Type=application/json"})
public Seller createSeller(@RequestBody Seller sellerRequest){
그래서 제 질문은 잭슨이 기대하는 인용된 JSON(수동으로 인용을 회피하고 인용을 수동으로 추가하는 것 말고)을 Dart에서 덜 진부한 방법이 있을까요?따옴표 없이 JSON을 허용하도록 잭슨을 설정할 수 있습니까?
import 'dart:convert';
...
json.encode(data); // JSON.encode(data) in Dart 1.x
항상 JSON을 인용하는 결과를 낳았습니다.
전화 안 해도 돼toString()
간단한 방법
import 'dart:convert';
Map<String, dynamic> jsonData = {"name":"vishwajit"};
print(JsonEncoder().convert(jsonData));
언급URL : https://stackoverflow.com/questions/29294019/dart-convert-map-to-json-with-all-elements-quoted
'programing' 카테고리의 다른 글
SQL(ORACLE): 주문 기준 및 제한 (0) | 2023.03.12 |
---|---|
python JSON은 첫 번째 레벨에서만 키를 가져옵니다. (0) | 2023.03.12 |
Oracle ODPNet With Entity Framework 6 - 엔티티 프레임워크 데이터베이스와 호환되는 공급자를 찾을 수 없습니다. (0) | 2023.03.12 |
각도에서의 알파벳 순으로 정렬 드롭다운JS (0) | 2023.03.12 |
UI 라우터 조건부 UI 뷰? (0) | 2023.03.12 |