μλ
νμΈμ. 
μ λ μ΅κ·Όμ λ©μλ 체μΈ(Method Chaining)μ μ¬μ©ν΄λ³΄κ³ μλλ°μ.
μμ λΆν° jQuery selectorλ Selenium(IWebElement)μ κ°μ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νλ©΄μλ
μ΄λ° ꡬ쑰μ λν΄ μ λλ‘ μΈμνμ§ λͺ»νκ³ μ¬μ©ν΄μμμ΅λλ€. (Linqλ± λ§μ§μ.)
κ·Έλμ μ¬μ€ μ΅κ·Όμ μμ κ°λ
μ΄λ μ©μ΄μ λν΄μλ κ΄μ¬μ΄ λ§μ΅λλ€.
μλλ μ κ° μ€μ μ¬μ©μ€μΈ μ½λ μΌλΆλΆμΈλ°μ.
Jsonμ κ°λ¨νκ² μμ±νκ³ λ³΄λ€ μ μ°νκ² μ¬μ©νκΈ° μν΄ λ§λ€μμ΅λλ€.
public class Json : JObject
{
public static Json Create => new Json();
public Json Add(Field field, JToken token)
{
string property = "";
switch (field)
{
case Field.SEQ: property = "SEQ"; break;
case Field.CULTURE_SEQ: property = "CULTURE_SEQ"; break;
case Field.RES_KEY: property = "RES_KEY"; break;
case Field.RES_DATA: property = "RES_DATA"; break;
case Field.INFO: property = "INFO"; break;
case Field.ADDRESS: property = "ADDRESS"; break;
}
Add(property, token);
return this;
}
}
λͺ¨λ κ³³μμ μ¬μ©νλ €λ κ²μ μλμ§λ§,
Json data = Json.Create.Add(Field.SEQ, 0)
.Add(Field.RES_KEY, "JAMES")
.Add(Field.INFO, "elena")
.Add(Field.ADDRESS, "Seoul");
μ μκ°μλ μμ κ°μ μ½λκ° λ³΄κΈ°μ(λͺ¨μμ΄) μ’μ보μ΄λλ°μ.
(μλ μ΄λ¦μ SetFieldλ‘ νλ€κ° Addλ‘ λ°κΏ¨μ΄μ.)
μ κ° κ΅¬νν λΆλΆμ λν΄ λΆμ‘±ν λΆλΆμ΄λ λ€μ΄λ°, ꡬ쑰 λ± λ€μν μ견과 μ‘°μΈμ λ£κ³ μΆμ΅λλ€.
μ½μ΄μ£Όμ
μ κ°μ¬ν©λλ€. 
2κ°μ μ’μμ
μ λ
JObject json = new JObject()
{
{ βkeyβ: βvalueβ },
{ βkey2β: βvalue2β }
};
μ΄λ κ² μ΄κΈ°νν©λλ€. 컬λ μ
μ μ΄κ² νΈν΄μβ¦ κ΅³μ΄ λ©μλ체μΈμ κ±Έμ΄μ μμ΄ν
μ λ£μ§ μμλ λμ§ μμκΉ μΆμ΅λλ€. λ λ²μ§Έ μ€λν«μμ Add λ©μλ λ€μ μΈλ―Έμ½λ‘ μ΄ λΆλ 건 μ€νμ£ ?
λκΈμ μ½λ μ€λν«κ°μ κ² μ λλ보λ€μ. λ€μ¬μ°κΈ°λ μ λκ³ β¦
2κ°μ μ’μμ
dimohy
3
μνλ μ½λμ κ²°κ³Όκ° λμ¨λ€λ©΄, μ΄λ€ μ½λ μ€νμΌ, νμμ μ·¨νλμ§λ μμ μΌκ² κ°μ΅λλ€.
μ‘°κΈ λ μ½λλ₯Ό 보μνκ³ μ νλ€λ©΄ λ€μκ³Ό κ°κ² κ΅°μ.
-
μλ‘μ΄ μΈμ€ν΄μ€λ₯Ό μμ±νλ κ²μ μμ±λ³΄λ€λ λ©μλκ° μλ―Έμ μΌλ‘ μ μ ν κ² κ°μ΅λλ€. βCreate()β, μ΄λ ν λ³κ²½ μμ΄ μμ±μ μ½λ κ² λ§μΌλ‘ μλ‘μ΄ μΈμ€ν΄μ€κ° μμ±λλ κ²μ μΌλ°μ μ΄μ§ μλκ² κ°μ΅λλ€.
-
λ©μλ 체μ΄λμ μν΄ μ¬μ©ν΄μΌ νλ μΈμ€ν΄μ€μ μνκ° κ³μ λ³νλ κ²μ μνν©λλ€. 체μ΄λμ ν΅ν΄ 'Settingβμ νκ³ μ΅μ’
'Buildβν΄μ μ¬μ©νλκ² μ’μ΅λλ€.
μμ) JsonBuilderλ‘ λ©μλ 체μ΄λ ꡬν. μ΅μ’
Build λ°νκ°μΌλ‘ Json λ°ν λ° μ¬μ©
5κ°μ μ’μμ
dimohy
4
κ·Έλ¦¬κ³ νκ°μ§ λ λ§μ λ리μλ©΄, λ€μ΄λ°μ λν κ²μΈλ°, λ€μ΄λ°μ λͺ©μ μ λΆν©νκ² λμμΈ νλκ² μ’μ§ μμκΉμ? κ°λ Ή, μ½λμ κ²°κ³Όλ μ μ ν νλμ κ·Έ νλμ κ°μ ν λΉνμ¬, JSON Objectλ₯Ό λ§λλκ²μΈλ°, μ΄κ² μ΅μ’
μ¬μ©λλ κ³³μ΄ μμν
λ°, κ°λ Ή, μμ²μ νλΌλ―Έν°λ‘ μ°μΈλ€λμ§μ. λ§μ½ κ·Έλ λ€λ©΄ λ€μκ³Ό κ°μ΄ λ€μ΄λ°μ νλκ² μ΄λ¨κΉμ?
- RequestParamBuilder
- RequestParam
μ΄λ° ννκ° λλ©΄ JsonObject μμμ λΆνμν΄ λ³΄μ΄κ³ μ.
2κ°μ μ’μμ
@κΉμ²νΈ μ μ€ν μΌλ₯Έ μ§μ μ΅λλ€. κ°μ¬ν©λλ€. 
λ§μ΅λλ€. μ λ λ§μνμ κ² μ²λΌ μ£Όλ‘ μ¬μ©νκ³ μμ΅λλ€.
μ¬λ΄μΌλ‘ μλμ κ°μ μ’μ μ λ μμμ΅λλ€.
μμ λͺ
κ°λ°μκ° μμ
ν λ ν΅μΌλ νλ μ μ½μ μ¬μ©ν¨μΌλ‘μ¨ νλ μ¬μ©μ λν λ¬Έμ λ₯Ό μ€μΌ μ μκ³ Json κ΄λ ¨ νμ₯μ μ μ°νκ² μ΄μ΄λκ° μ μμμ΅λλ€.
그리κ³
λκΈμμλ μ½λλΈλ‘μμ μ§μ μμ±νμλ©΄ λ©λλ€!
```csharp
μ¬κΈ°μ μ½λβ¦
```
1κ°μ μ’μμ
@dimohy Create()λ‘ λ°κΏ¨μ΅λλ€. 
κ·Έλ¦¬κ³ Setting λ§μνμ 건 μμμ΄ μλ μμμ λ»νμλ건κ°μ?
μ‘°μΈν΄μ£Όμ λλ‘ νλ² λ°κΏλ΄€μ΅λλ€!
public class JsonBuilder
{
private JObject Json = new JObject();
public static JsonBuilder Create() => new JsonBuilder();
public JsonBuilder Setting(Field field, JToken token)
{
string property = "";
switch (field)
{
case Field.SEQ: property = "SEQ"; break;
case Field.CULTURE_SEQ: property = "CULTURE_SEQ"; break;
case Field.RES_KEY: property = "RES_KEY"; break;
case Field.RES_DATA: property = "RES_DATA"; break;
case Field.INFO: property = "INFO"; break;
case Field.ADDRESS: property = "ADDRESS"; break;
}
Json.Add(property, token);
return this;
}
public JObject Build() => Json;
public ToJsonString() => Json.ToString();
}