programing

javascript에서 문자열 배열을 배열로 변환

lastcode 2023. 2. 17. 19:40
반응형

javascript에서 문자열 배열을 배열로 변환

django-rest-framework API 호출에서 다음 아이템을 받았습니다.

services = "['service1', 'service2', 'service3']"

나는 되고 싶다.services = ['service1', 'service2', 'service3']

JavaScript에서 시도했습니다.services = JSON.parse(services)- 아무것도 하지 않고, 시도도 했다.$.parseJSON(services).

시리얼라이저에서 다음과 같은 설정 서비스를 시도했습니다.ListField, 또한 시도했다.JSONSerializerField()

class JSONSerializerField(serializers.Field):
    # Adapted from http://stackoverflow.com/a/28200902
    def to_internal_value(self, data):
        return json.loads(data)

    def to_representation(self, value):
        return value

해석하려면 단일 따옴표 대신 큰따옴표를 사용해야 합니다.

이 조작은 유효합니다.

services = '["service1", "service2", "service3"]'
JSON.parse(services)

배열된 문자열을 순수 배열로 변환하는 데 사용됩니다.

var a = '[Aakash,akash]'
a.replace(/\[|\]/g,'').split(',')
(2) ["Aakash", "akash"]

답변은 다음과 같습니다.

services = "['service1', 'service2', 'service3']"

JSON.parse()는 부모 따옴표가 단일 따옴표이고 다른 모든 자식 따옴표가 이중 따옴표인 경우 작동합니다.아래에 예를 제시하겠습니다.

services = '["service1", "service2", "service3"]'

이를 위해 replace()를 사용할 수 있습니다.다음은 동작 예를 제시하겠습니다.

services = "['service1', 'service2', 'service3']"
services = services.replace(/'/g, '"') //replacing all ' with "
services = JSON.parse(services)
console.log(services)

Django와 일부 Javascript 브라우저 코드 간에 올바른 해석을 수행하려면 컨트롤러에서 JsonResponse()를 반환해야 합니다.이를 통해 Javascript에서 JSON.parse()를 사용하여 해석할 수 있습니다.

사용법:

var services = "['service1', 'service2', 'service3']"
services = services .split(",");
services [0] = services [0].substring(1);
services [services .length - 1] = services [services .length - 1].substring(
  0,
  services [services .length - 1].length - 1
);
services .forEach((x, i) => {
  services [i] = services [i].includes('"') ? services [i].replaceAll('"', "").trim()
     : services [i].replaceAll("'", "").trim();
});

console.log(services );

나는 최근에 비슷한 문제를 해결할 수 있는 우회적인 방법을 찾았다.배열을 HTML 요소에 데이터 속성으로 저장하여 나중에 JS에서 사용할 수 있도록 하고 싶었습니다.그러나 이러한 HTML 속성은 문자열로만 저장할 수 있습니다.이 문제를 해결하려면...

  1. 먼저 어레이를 단일 문자열로 변환하고 각 값을 쉼표로 구분했습니다(예: ["test 1", "test 2", "test 3"]라고 쓰여 있다.“test 1,test 2,test 3”).
  2. 다음으로 원하는 HTML 데이터 속성에 새로운 문자열을 입력했습니다.(예:<div data-somedata="test 1,test 2,test 3"></div>)
  3. JS를 입력했을 때, 그 데이터 문자열을 취득해, jQuery의 「분할」메서드를 사용해 어레이로 되돌렸습니다.이 부분은 이쪽에서 확인하세요.

let stillString = $("[data-something]").attr('data-something');
console.log(stillString);

let nowArray = stillString.split(",");
console.log(nowArray);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<div data-something="test 1,test 2,test 3"></div>

어레이를 문자열로 유지하면 보기 흉할 수 있지만 작업이 완료되어 일반 사용자는 차이를 알 수 없습니다.

메모: 쉼표는 사용할 필요가 없습니다.어떤 캐릭터든 정말 쓸 수 있어요.유일하게 중요한 것은 분리하려는 값에는 분할된 문자가 포함되어 있지 않다는 것입니다.

언급URL : https://stackoverflow.com/questions/41402834/convert-string-array-to-array-in-javascript

반응형