C# 파싱문제좀 도와주세요..

안녕하세요.

질문 하나만 드리겠습니다…

object resp = winHttp.ResponseBody;
로 결과값을 받아
String resultText = System.Text.Encoding.Default.GetString((Byte[])resp);
문자열로 변환을 한 결과
jsonp123456123({‘SUC’:‘00’,‘A’:‘A1’,‘B’:‘B1’}) 요렇게 로그가 찍히고 있습니다
여기서 SUC의 값 00만 뽑아오고 싶은데…어떻게 해야할지 조언좀 부탁드립니다.

C#전공이 아니다 보니 굉장히 어렵네요…

3개의 좋아요

우선 로그에 정말 ‘딱’

jsonp123456123({‘SUC’:‘00’,‘A’:‘A1’,‘B’:‘B1’})

이렇게만 찍히고 있는지 확인이 필요합니다.
파싱 자체는 어렵게 생각하지 마시고 SubString 메서드를 이용해 우선 쉽게 해보세요.

2개의 좋아요

@Vincent 님과 비슷한 맥락인데, 데이터 처리를 할 때 프로그래밍 언어와 상관없이

데이터의 패턴을 정확히 파악하는 것

이 중요합니다. 언어의 기능은 그 다음으로 정확한 패턴만 잘 파악했다면 string.SubString()을 이용하는 전략도 좋은 전략입니다. 만약 패턴이 정규식을 이용해야 할 경우 언어에서 제공하는 정규식 사용법을 숙지한 후 사용할 수 있습니다.

3개의 좋아요
using System;
using System.Text.RegularExpressions;

var str = "jsonp123456123({‘SUC’:‘00’,‘A’:‘A1’,‘B’:‘B1’})";
var regex = new Regex(@"‘SUC’:‘(\w*)’");
var result = regex.Match(str);
Console.WriteLine(result.Groups[1]);

// 결과 : 00

대충 이런 식으로 처리하면 되지 않을까요.

4개의 좋아요