Привет, я пытаюсь использовать объекты mutiple json, как показано в примере ниже.Несколько объектов JSON из текстового файла
[
{
"DateandTime" : "1025",
"LoggingLevel" : "ERROR",
"Description" : "Test"
}
]
[
{
"DateandTime" : "1025",
"LoggingLevel" : "ERROR",
"Description" : "Test"
}
]
Это, как она создается со стороны IOS, потому что я только создать один из объектов, в то время, потому что это для системы протоколирования отчетов и нужно только сообщение передается, когда это необходимо. Таким образом, объекты Json создаются в разное время и добавляются к файлу.
Я знаю, что правильная строка Json будет выглядеть следующим образом.
[
{
"DateandTime" : "1025",
"LoggingLevel" : "ERROR",
"Description" : "Test"
},
{
"DateandTime" : "1025",
"LoggingLevel" : "ERROR",
"Description" : "Test"
}
]
Однако это не то, что мне нужно. Есть ли способ использовать два отдельных объекта Json?
IOS
NSString *DataString = [NSString stringWithFormat:@"{ \"DateandTime\":\"%@\", \"Description\":\"%@\", \"LoggingLevel\":\"%@\" }", @"1025", logString, [self getLogTypeName:(LOGS)level]];
NSMutableArray *CurrentData = [NSJSONSerialization JSONObjectWithData:[DataString dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableContainers error:nil];
NSMutableArray *ArrayOfData = [[NSMutableArray alloc] init];
[ArrayOfData addObject:CurrentData];
NSData *JsonObject = [NSJSONSerialization dataWithJSONObject:ArrayOfData options:0 error:nil];
NSString *jsonString = [[NSString alloc] initWithData:JsonObject encoding:NSUTF8StringEncoding];
post = [NSString stringWithFormat:@"Message=%@", jsonString];
PHP
$file = 'testingFile.txt';
// Open the file to get existing content
$current = file_get_contents($file);
if (isset($_POST['Message'])) {
// Append a new person to the file
$current .= $_POST['Message'] . PHP_EOL;
// Write the contents back to the file
file_put_contents($file, $current);
} else {
$Contents = file_get_contents($file);
echo $Contents;
}
Javascript
function GetLoggingData() {
$.get("../ISOSEC/logging/TestPHP.php", function(data){
$.each($.parseJSON(data), function(idx, obj) {
console.log(obj.DateandTime);
console.log(obj.LoggingLevel);
console.log(obj.Description);
AddLog(obj.DateandTime, obj.LoggingLevel, obj.Description);
});
});
}
Может кто-нибудь показать мне, как я мог бы объединить объекты вместе, если есть уже объект JSON в файле или есть ли другая работа?
Спасибо.
Вы должны создать действительный JSON для JSON парсер для успешного синтаксического анализа Это.Я уверен, что вы можете сделать некоторые обходные пути в стороне парсера, чтобы заставить его работать. Но почему бы вам не приложить свои усилия для написания надлежащего JSON в первую очередь? –
Как @RonniEgeriis сказал, что было бы намного легче прочитать проверку файла, если есть уже json-строка, если есть новый контент, а затем записать в этот файл, а не искать способ разобрать это. –
@RonniEgeriis Это действительно JSON, если это был только один объект, как я объяснил. Однако я не отправляю все данные JSON одновременно, он отправляется в разное время, потому что они регистрируют отчеты и просто добавляются в текстовый файл. Я обновил свой вопрос, чтобы спросить, может ли кто-нибудь показать мне, как добавить два объекта вместе или по-другому? –