웹에 있는 json file을 가져와 읽어보는 간단한 code

 

json 위치: github.com/microsoft/vscode-cpptools/blob/main/Extension/package.json

 

microsoft/vscode-cpptools

Official repository for the Microsoft C/C++ extension for VS Code. - microsoft/vscode-cpptools

github.com

순수 json 위치: raw.githubusercontent.com/microsoft/vscode-cpptools/main/Extension/package.json

 

code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string url = "https://raw.githubusercontent.com/microsoft/vscode-cpptools/main/Extension/package.json";
            string json = new WebClient().DownloadString(url);
            JObject jObj = JObject.Parse(json);

            Console.WriteLine(jObj["name"]);
            Console.WriteLine(jObj["displayName"]);
            Console.WriteLine(jObj["version"]);
            Console.WriteLine(jObj["engines"]["vscode"]);
        }
    }
}

 

참고

vscode extension dir은 publisher.name.version 인듯

'프로그래밍 > C#' 카테고리의 다른 글

간단한 json reader 만들기  (0) 2021.03.14
간단한 XML reader  (0) 2021.03.14

간단히 web의 xml 문서를 읽어서 필요한 정보를 찾는 방법

code는 xml 문서의 <title> tag에 있는 버전 정보만 읽어오도록 함

 

xml source: github.com/microsoft/vscode-cpptools/releases.atom

 

code

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string url = "https://github.com/microsoft/vscode-cpptools/releases.atom";
            XmlReader reader = XmlReader.Create(url);
            bool checkEntry = false;
            while(reader.Read())
            {
                if (reader.IsStartElement())
                {
                    if (reader.Name == "title" && checkEntry)
                    {
                        Console.WriteLine(reader.ReadElementContentAsString());
                        break;
                    }
                    else if (reader.Name == "entry")
                    {
                        checkEntry = true;
                    }
                }
            }
            reader.Close();
            
        }
    }
}

'프로그래밍 > C#' 카테고리의 다른 글

간단한 json reader 만들기  (0) 2021.03.14
간단한 XML reader  (0) 2021.03.14

기존 Java에서 HTML 파서로 유명한 jericho 라이브러리라는게 있다고 한다.
하지만 이게 안드로이드에서는 의존 라이브러리가 존재해서 이용하기 곤란했다고 한다.
이걸 편하게 하기 위해서 jericho 라이브러리를 손봐 주시었다!

http://blog.naver.com/zeanz?Redirect=Log&logNo=110092582999

여기에서 jericho-android.jar 파일을 다운 받아 사용하자!
물론 감사함의 마음은 잊지 말고 표현하자 ㅎ

이제 라이브러리는 준비 되었다.
어떻게 사용하느냐!
또 다른 능력자분이 존재하신다 ㅎ

http://blog.naver.com/mysk4521?Redirect=Log&logNo=40093081572

위 포스트를 참고하기 바란다.
사용법은 그대로이니 잘 사용하자~
아쉬움이 있다면 이미 파일이 존재하고 그 파일에서 데이터를 가져 온다는 가정으로 함수를 설명해 주셨는데..
웹에서 직접 페이지를 읽는 방식으로는 어떻게 해야 할까?
약간의 수정만 가하면 된다.
바로 요거!
	URL nURL = new URL(url);
	InputStream html = nURL.openStream();
	Source source = new Source(new InputStreamReader(html, "euc-kr"));


  1. 2011.05.29 16:38

    비밀댓글입니다

테스트용
비록 올바른 사용 예는 아닐 수 있지만 사용법 숙달을 위해..

#include <stdio.h>
#include <windows.h>
#include <process.h>

// 쓰레드 함수
void threadTest1(void* param);
void threadTest2(void* param);

// 계산 함수
void cal(int num);

// 테스트 숫자
static int maxCnt = 20;

// 계산 결과를 저장
static int result = 0;

// Critical section Variable
CRITICAL_SECTION cs;

// 메인 함수
int main(void)
{
	// 초기화
	InitializeCriticalSection(&cs);

	int i;
	for(i = 0; i < 5; i++)
	{
		// 변수 초기화
		result = 0;

		// 쓰레드 시작
		HANDLE handles[2];
		handles[0] = (HANDLE)_beginthread(threadTest1, 0, NULL);
		handles[1] = (HANDLE)_beginthread(threadTest2, 0, NULL);

		// 쓰레드가 모두 종료될 때까지 대기
		WaitForMultipleObjects(2, handles, TRUE, INFINITE);

		// 결과 출력
		printf("계산 결과: %d\n", result);
	}

	return 0;
}

// 쓰레드 함수 구현
void threadTest1(void* param)
{
	int loopcnt = 0;

	do
	{
		cal(1);
		Sleep(1);
	} while(maxCnt > ++loopcnt);

	_endthread();
}

void threadTest2(void* param)
{
	int loopcnt = 0;

	do
	{
		cal(2);
		Sleep(1);
	} while(maxCnt > ++loopcnt);

	_endthread();
}

// 계산 함수
void cal(int num)
{
	int tmp = 0;

	EnterCriticalSection(&cs);

	// 연산
	tmp = result;
	tmp += num;
	Sleep(1);	// 일부러 Context switching 해버릴 수도 있도록
	result = tmp;

	LeaveCriticalSection(&cs);
}

'프로그래밍 > C & C++' 카테고리의 다른 글

[C/VC] 간단한 Critical Section 테스트  (0) 2011.03.06
struct 선언과 typedef  (0) 2007.03.31

표준 입출력인 콘솔을 통한 입출력을 알아본다.

1. 콘솔 입력

기존 2.x대 파이썬에서는 raw_input()함수를 통해 콘솔 입력을 받았지만 3.x에서는 input()함수를 통해 입력받을 수 있다. input()함수의 파라미터로 텍스트를 입력하면 해당 텍스트를 출력하면서 콘솔을 통해 입력을 받을 수 있다.
>>> birthday = input("생일 입력 ")
생일 입력 1999.01.01
>>> birthday
'1999.01.01'

2. 콘솔 출력

다른 포스트에서 처럼 print()함수를 이용하여 기본 출력을 한다.
>>> print(birthday)
1999.01.01

print()함수와 ,를 이용하여 다음과 같이 출력할 수도 있다.
,가 들어가면 공백으로 출력된다.
>>> print(a, b, c, d)
1 2 3 4

'프로그래밍 > Python' 카테고리의 다른 글

콘솔 입출력  (0) 2011.03.06
기초문  (0) 2011.03.05
변수명  (0) 2011.03.05
Python 기본  (0) 2011.03.05

+ Recent posts