0
各行の上にNewtonSoft JSONアノテーションを挿入するPowerShellスクリプトを作成しました。正しくないC#モデルの配列の文字列を置き換えます
public class Rootobject
{
public string clientID { get; set; }
public string bankID { get; set; }
public string applicationID { get; set; }
//(...)
public string appName { get; set; }
public GeneralData loanDataRequest { get; set; }
}
public class Roles
{
public string role1 { get; set; }
public string otherParty1 { get; set; }
}
結果ファイル:
public class Rootobject
{
[JsonProperty(PropertyName = "")]
public string clientID { get; set; }
[JsonProperty(PropertyName = "")]
public string bankID { get; set; }
[JsonProperty(PropertyName = "")]
public string applicationID { get; set; }
...
}
//other properties are exluded due to simplicity of the code
スクリプト:私はなりたい
$FileName = "E:\startingFile.txt"
$FileOriginal = Get-Content $FileName
$lines = (Get-Content E:\startingFile.txt)
#trim lines
$newcontent = foreach ($line in $lines) {
$line.Trim()
}
for ($i = 0; $i -lt $FileOriginal.Length; $i++) {
if ($FileOriginal[$i] -like "*public*" -and $FileOriginal[$i] -notlike "*class*") {
# insert your line before this line and not insert if line contains '{','}'
$FileOriginal[$i] -replace 'public', '`npublic'
$FileOriginal[$i] -replace '{', '`n{'
$NewFileContent += "`n[JsonProperty(PropertyName = """ + $FileOriginal[$i].Split()[2] + """)]"
}
$NewFileContent += $FileOriginal[$i]
}
$NewFileContent | Out-File "E:\resultFile.txt"
結果ファイル:
ファイルを起動するpublic class Rootobject
{
[JsonProperty(PropertyName = "clientID ")]
public string ClientID { get; set; }
[JsonProperty(PropertyName = "bankID ")]
public string BankID { get; set; }
[JsonProperty(PropertyName = "applicationID ")]
public string ApplicationID { get; set; }
...
}
//other properties are exluded due to simplicity of the code
の
質問:
なぜそれが私のJSONのPropertyNameに
$FileOriginal[$i].Split()[2]
を追加していないのだろうか?Answer(editied):私の行には複数の空白が含まれていることがわかりましたので、今のところ私は
$FileOriginal[$i].Split()[10]
のような値を得ることができます。私の配列
$lines[3]
の代わりに、最初の文字を大文字にするには? (public string clientID
- >public string ClientID
)- 私のtxt出力を正しくフォーマットする方法は、startingFileとまったく同じですか?