c# 프로그램에 .json 파일 로드
XML 기반의 컨피규레이션파일에서 JSON 기반의 컨피규레이션파일로 웹사이트를 이동하려고 합니다.로딩할 수 있는 방법이 있나요?.json
줄서서 물건으로 만들 수 있을까요?웹을 검색해 봤지만 찾을 수가 없어요.나는 이미 가지고 있다..xml
변환되어 저장되는 파일.json
서드파티 라이브러리는 사용하지 않는 것이 좋습니다.
뉴턴소프트와 같은 기존의 도서관을 이용하는 것이 좋습니다.Json(MVC나 WebAPI 등의 프레임워크에 Microsoft도 사용) 또는.NET의 내장 Javascript Serializer.
다음은 Newtonsoft를 사용하여 JSON을 읽은 예입니다.Json:
JObject o1 = JObject.Parse(File.ReadAllText(@"c:\videogames.json"));
// read JSON directly from a file
using (StreamReader file = File.OpenText(@"c:\videogames.json"))
using (JsonTextReader reader = new JsonTextReader(file))
{
JObject o2 = (JObject) JToken.ReadFrom(reader);
}
json을 c#에 시리얼화하는 또 다른 좋은 방법은 다음과 같습니다.
RootObject ro = new RootObject();
try
{
StreamReader sr = new StreamReader(FileLoc);
string jsonString = sr.ReadToEnd();
JavaScriptSerializer ser = new JavaScriptSerializer();
ro = ser.Deserialize<RootObject>(jsonString);
}
시스템에 참조를 추가해야 합니다..net 4.0 의 web.extensions 는, 프로그램 파일(x86) > 레퍼런스 어셈블리 > 프레임워크 > 시스템에 있습니다.web . extensions . extensions . extensions you you web web web web 、 4.0 클라이언트가 아닌 일반 4.0 프레임워크만 사용하고 있는지 확인해야 합니다.
다른 답변에서도 언급했듯이 json을 사용하는 것을 추천합니다.NET. NuGet을 사용하여 패키지를 다운로드할 수 있습니다.그런 다음 Json 파일을 C# 객체로 역직렬화하려면 다음과 같은 작업을 수행합니다.
JsonSerializer serializer = new JsonSerializer();
MyObject obj = serializer.Deserialize<MyObject>(File.ReadAllText(@".\path\to\json\config\file.json");
위의 코드는 다음과 같은 것을 가지고 있다고 가정합니다.
public class MyObject
{
public string prop1 { get; set; };
public string prop2 { get; set; };
}
당신의 아들은 어떻게 생겼습니까?
{
"prop1":"value1",
"prop2":"value2"
}
json의 정의가 json과 일치하는 유형을 제공한다고 가정할 때 json을 오브젝트로 역직렬화하는 일반적인 역직렬화 방법을 사용하는 것이 좋습니다.둘 사이에 불일치가 있는 경우, 문제가 무엇인지에 따라 값이 느려지거나, 값이 설정되지 않거나, json 내의 모든 것을 무시할 수 있습니다.json 정의가 C# 유형 정의와 정확히 일치하면 기능합니다.
서버를 사용합니다.MapPath는 JSON 파일의 실제 경로를 가져와 StreamReader를 사용하여 파일을 로드하고 읽습니다.
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
public class RootObject
{
public string url_short { get; set; }
public string url_long { get; set; }
public int type { get; set; }
}
public class Program
{
static public void Main()
{
using (StreamReader r = new StreamReader(Server.MapPath("~/test.json")))
{
string json = r.ReadToEnd();
List<RootObject> ro = JsonConvert.DeserializeObject<List<RootObject>>(json);
}
Console.WriteLine(ro[0].url_short);
}
}
메모: 아래 링크를 참조해 주세요.또, 이것과 같은 질문에 대답했습니다.C#의 예제 문자열을 해석하는 방법에 대한 도움말은 가득합니다.
나는 그것을 다음과 같이 해 왔다.
using (StreamReader sr = File.OpenText(jsonFilePath))
{
var myObject = JsonConvert.DeserializeObject<List<YourObject>>(sr.ReadToEnd());
}
또, 다음과 같은 비동기 콜을 사용할 수도 있습니다.ReadToEndAsync().뉴튼소프트를 사용해서요.참조용 Json.
호프, 이게 도움이 돼
"Microsoft JavaScript Serializer" 참조
JavaScriptSerializer 클래스는 브라우저와 웹 서버 간에 전달되는 데이터를 직렬화 및 역직렬화하기 위해 비동기 통신 계층에서 내부적으로 사용됩니다.해당 시리얼라이저 인스턴스에 액세스할 수 없습니다.단, 이 클래스는 퍼블릭 API를 공개합니다.따라서 관리되는 코드에서 JavaScript Object Notation(JSON)을 사용할 때 클래스를 사용할 수 있습니다.
네임스페이스:시스템.Web.스크립트시리얼화
어셈블리:시스템.Web.Extensions(시스템 내).Web.Extensions.dll)
언급URL : https://stackoverflow.com/questions/18538428/loading-a-json-file-into-c-sharp-program
'programing' 카테고리의 다른 글
요청에 대해 일부 jQuery 글로벌 Ajax 이벤트 처리기 사용 안 함 (0) | 2023.04.05 |
---|---|
Java prepared Statement를 사용하여 Postgres에 JSON 개체를 삽입하려면 어떻게 해야 합니까? (0) | 2023.04.05 |
AngularJS: DOM 변경을 적용한 후 요소의 끝까지 스크롤합니다. (0) | 2023.04.05 |
Ajax, 뒤로 버튼 및 DOM 업데이트 (0) | 2023.04.05 |
Chrome 확장 hint.js & ngHint Modules (0) | 2023.04.05 |