programing

JSON.stringify가 Json 오브젝트에 \와 "를 추가하는 문제

powerit 2023. 4. 3. 21:49
반응형

JSON.stringify가 Json 오브젝트에 \와 "를 추가하는 문제

안녕하세요, 저는 Javascript를 사용하여 아래 코드를 사용하여 키와 값을 가진 오브젝트 배열을 만들고 있습니다.

ValuesArray.push({ key: $(this).attr('someattribute'), value: $(this).val() });

그 결과 다음과 같은 오브젝트가 배열되어 있습니다.

key:29; value: 'Country'
Key:12; value: '4,3,5'

스트링화해서 그 JSON을 포스트로 보내려고 할 때, 그 JSON이 \와 "로 포맷되어 있지 않은 장소에 있기 때문에, 그 JSON을 C#의 코드 배후에 있는 JObject로서 요구하려고 하면 곤란합니다.stringify를 사용하여 클린 JSON을 작성하려면 어떻게 해야 합니까?

var jObject = JSON.stringify(ValuesArray);

현재 잘못된 JSON은 다음과 같습니다.

{
  "JObject": "[{\"key\":\"29\",\"value\":\"Country\"},  {\"key\":\"30\",\"value\":\"4,3,5\"}]"
}

나는 이런 JSON 오브젝트를 갖고 싶다.

{
  "JObject": [{"key":"29","value":"Country"},{"key":"30","value":"4,3,5"}]
}

에 대한 인용구 없이[]그리고 캐릭터\

해결할 수 있는 좋은 아이디어라도.

감사해요.

JSON을 API로 전송하는 방법에 대한 자세한 내용은 웹 API로 JSON을 웹 API로 전송하는 방법은 다음과 같습니다.

function PostAPIRequest(address) {

           var jObject = JSON.stringify(ValuesArray);

           var responseJson = null;
           $.ajax({
               url: address,
               type: 'POST',
               dataType: 'json',
               data: { JObject: jObject },
               success: function (data) {
                   responseJson = data
                   ProcessDataResponse(responseJson);
                   //TODO: REFRESH THE DATA GRID
               },
               error: function (xhr, ajaxOptions, thrownError) {
                   //TODO redirect to the error page and send error email there.
                   alert(xhr.status);
                   alert(thrownError);
               }
           })
       }

API 컨트롤러에서 이렇게 수신하고 있습니다.

...
  // POST api/datavalues/5


   public string Post(int id, JObject  value)
    {
        var temp = value;

...

지도의 값으로 문자열을 배치하고 있는 것 같습니다.다음과 같은 작업을 수행해야 합니다.

var objMap = {"JObject" : ValuesArray}; var json = JSON.stringify(objMap)

이 경우 값 배열을 이중으로 인코딩하고 있습니다. "비활성" JSON 값은 실제로 원하는 배열이 아닌 JSON 문자열입니다.

편집 맵의 JSON 문자열을 Array에 삽입한 후 문자열화하는 것처럼 보입니다.원하는 것을 얻을 수 있는 jsfiddle - http://jsfiddle.net/4G5nF/

투고 요청 시 이것을 사용해 보십시오.

var jObject = {"JObject" : ValuesArray};
$.ajax({   url: address,
           type: 'POST',
           dataType: 'json',
           data: jObject,
           success: function (data)  { .. }});

데이터 속성의 변경에 주의해 주세요.이 값은 자동으로 JSONify되는 값입니다.

const config = {a: 1, b: 2}
console.log(JSON.stringify(JSON.stringify(config)))

"{\"a\"}: 1, "b\": 2"

아마 당신은 오래된 것을 가지고 있을 것이다.prototype도서관.제거하니 벌레가 없어졌다.

언급URL : https://stackoverflow.com/questions/13916673/issue-with-json-stringify-adding-a-extra-and-to-my-json-object

반응형